Hopefully fixed the new exponential behavior by piggybacking on a now more accurate needed-for-eval tracking (that hopefully didn't introduce it's own exponential behavior but might have), and other fixes. We still have the same weird problem though

This commit is contained in:
Nathan Braswell
2022-01-23 14:16:07 -05:00
parent 94e2d62a10
commit 77c7a05a28
2 changed files with 47 additions and 62 deletions

View File

@@ -9,9 +9,9 @@
(let1 cons (lambda (h t) (concat (array h) t))
(let1 lapply (lambda (f p) (eval (cons (unwrap f) p) (current-env)))
(let1 vapply (lambda (f p ede) (eval (cons f p) ede))
;(let1 Y (lambda (f)
; ((lambda (x1) (x1 x1))
; (lambda (x2) (f (lambda (& y) (lapply (x2 x2) y))))))
(let1 Y (lambda (f)
((lambda (x1) (x1 x1))
(lambda (x2) (f (lambda (& y) (lapply (x2 x2) y))))))
;(let1 vY (lambda (f)
; ((lambda (x3) (x3 x3))
; (lambda (x4) (f (vau de (& y) (vapply (x4 x4) y de))))))
@@ -27,7 +27,7 @@
; end of all lets
))));)))
)))));))
)
; impl of let1