return f() ## def loadMacro(filename):#move to eval but limit ## with open(filename) as f: ## code = f.read() ## start = 0 ## while 1: ## t,end = peekSexp(code,start) ## if end==-1: ## break ## defmacro(code[start:end]) ## start = end ## loadMacro("initsyx.scm") eval9(peekSexp('1')[0]) eval9(peekSexp('(::define a 1)')[0]) buildExp10(peekSexp('(::define a 1)')[0],Env()) defmacro(T.peekSexp("""(defmarco begin lst (cons '::begin lst))""")[0]) @block def initMacro(): Scm.load("initsyx.scm",topenvrn) Scm.load("quasiquote.scm",topenvrn) Scm.load("do.scm",topenvrn) Scm.load("initsyn2.scm",topenvrn) ################################################################### topenvrn.define(Sym("apply"),BlkApp9())## #define("apply",BlkApp9()) import P P.makePrim(lambda k,v:topenvrn.define(k,v),topenvrn,Scm)