Issue #331 - Ensure definitions from begin's are spliced in

This commit is contained in:
Justin Ethier 2019-08-06 22:06:43 -04:00
parent 2d398573a5
commit 80b861664a

View file

@ -614,17 +614,19 @@
rename-env rename-env
local-renamed)))))) local-renamed))))))
(cond (cond
; ;; special case ;; special case - a begin can splice in definitions, so we can't use the
; ((eq? 'begin op) ;; built-in macro that just expands them in a new lambda scope. Instead
;; we nest them below within the same lexical environment.
((eq? 'begin op)
;(newline) ;(newline)
;(display "/* ") ;(display "/* ")
;(write (list 'begin exp)) ;(write (list exp))
;(display "*/ ") ;(display "*/ ")
; (let ((fncs (map (lambda (expr) (let ((fncs (map (lambda (expr)
; (pre-analyze-application expr a-env rename-env local-renamed)) (analyze expr a-env rename-env local-renamed))
; (cdr exp)))) (cdr exp))))
; (lambda (env) (lambda (env)
; (foldl (lambda (fnc _) (fnc env)) #f fncs)))) (foldl (lambda (fnc _) (fnc env)) #f fncs))))
;; compiled macro ;; compiled macro
((Cyc-macro? var) ((Cyc-macro? var)
(expand var)) (expand var))