# HG changeset patch # User Linus Björnstam # Date 1566743430 -7200 # Sun Aug 25 16:30:30 2019 +0200 # Node ID 403b71b344bcf81e0afb8d74d3635defc1df3627 # Parent 06899ac8e933d23794cec6bb85674356924c14cf Fixed new-cond Now use letrec* instead of letrec diff --git a/syntax/define.scm b/syntax/define.scm --- a/syntax/define.scm +++ b/syntax/define.scm @@ -4,7 +4,8 @@ -(define-module (syntax define) +(define-module (syntax define + ) #:use-module (ice-9 receive) #:replace ((new-lambda . lambda) (new-define . define) @@ -86,7 +87,7 @@ (receive vals test (if (apply guard vals) (apply (new-begin body ...) vals) - (internal-cond rest ...)))) + (new-cond rest ...)))) ;; Lambda case ((_ (test => body ...) rest ...) @@ -106,7 +107,7 @@ ((_ (test body ...) rest ...) (if test (new-begin body ...) - (internal-cond rest ...))))) + (new-cond rest ...))))) @@ -123,7 +124,7 @@ ;; Exit ((_ clauses rest ...) - (letrec clauses + (letrec* clauses (%parse-body () rest ...))))) ;; A macro that transverses expressions