Emit lambda AST's

This commit is contained in:
Justin Ethier 2019-02-13 15:00:38 -05:00
parent f6be983113
commit a20f020f66

View file

@ -187,17 +187,17 @@
;; Memoize all of the functions at top-level ;; Memoize all of the functions at top-level
(foldl (foldl
(lambda (var/new-var acc) (lambda (var/new-var acc)
(let ((rsym (gensym 'r)) (let* ((rsym (gensym 'r))
(var (car var/new-var)) (var (car var/new-var))
(new-var (cdr var/new-var))) (new-var (cdr var/new-var))
(body
`((Cyc-seq
(set-global! ,var ,rsym)
,acc)))
)
`(memoize `(memoize
(,(gensym 'lambda) ,(ast:make-lambda (list rsym) body)
(,rsym) ,new-var)))
(Cyc-seq
(set-global! ,var ,rsym)
,acc
))
,new-var)))
exp exp
memo-tbl) memo-tbl)
))) )))