From 735d731bb68335103fa3d4edc188bed568b26058 Mon Sep 17 00:00:00 2001 From: Dane Johnson Date: Fri, 23 Jan 2026 13:01:05 -0600 Subject: [PATCH] Letrecs now working properly, no use before definitions --- scmvm/language/scheme.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scmvm/language/scheme.scm b/scmvm/language/scheme.scm index 4a7e982..5999e7a 100644 --- a/scmvm/language/scheme.scm +++ b/scmvm/language/scheme.scm @@ -227,12 +227,10 @@ `(set-then! ,var ,$expr ,(k undefined-value))))] [(f e* ...) (let* ([$rv (gensym "$rv-")] - [cont `(lambda (,$rv) ,(k $rv))]) - (T-k f - (lambda ($f) - (T*-k e* - (lambda ($e*) - `(,$f ,@$e* ,cont))))))])) + [$k (gensym "$k-")]) + (T-k f (lambda ($f) + (T*-k e* (lambda ($e*) + (k `((lambda (,$k) (,$f ,@$e* ,$k)) (lambda (,$rv) ,$rv))))))))])) ;; (expr* * (aexp* -> cexp) -> cexp) (define (T*-k v* k)