Letrecs now working properly, no use before definitions

This commit is contained in:
2026-01-23 13:01:05 -06:00
parent 05fd5f5db2
commit 735d731bb6

View File

@@ -227,12 +227,10 @@
`(set-then! ,var ,$expr ,(k undefined-value))))] `(set-then! ,var ,$expr ,(k undefined-value))))]
[(f e* ...) [(f e* ...)
(let* ([$rv (gensym "$rv-")] (let* ([$rv (gensym "$rv-")]
[cont `(lambda (,$rv) ,(k $rv))]) [$k (gensym "$k-")])
(T-k f (T-k f (lambda ($f)
(lambda ($f) (T*-k e* (lambda ($e*)
(T*-k e* (k `((lambda (,$k) (,$f ,@$e* ,$k)) (lambda (,$rv) ,$rv))))))))]))
(lambda ($e*)
`(,$f ,@$e* ,cont))))))]))
;; (expr* * (aexp* -> cexp) -> cexp) ;; (expr* * (aexp* -> cexp) -> cexp)
(define (T*-k v* k) (define (T*-k v* k)