From 4f8459ae64b71bcedb330464ab778fb06941e038 Mon Sep 17 00:00:00 2001 From: Dane Johnson Date: Tue, 7 Oct 2025 08:04:01 -0500 Subject: [PATCH] Minor scheme changes --- scmvm/language/scheme.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scmvm/language/scheme.scm b/scmvm/language/scheme.scm index 0dac081..d09a9e1 100644 --- a/scmvm/language/scheme.scm +++ b/scmvm/language/scheme.scm @@ -76,14 +76,14 @@ (define (desugar-body body) (match body ['() '()] - [`(,e) (desugar-exp e)] - [`(. ,e*) `(begin ,@(map desugar-exp e*))])) + [(e) (desugar-exp e)] + [(e* ...) `(begin ,@(map desugar-exp e*))])) ;; A-Normalization -;; All arguments to lambdas are atomic, all lets have ;; ::= ... ;; ::= | +;; ::= (define ) ;; ::= ;; | ;; | (let (( )) ) @@ -93,6 +93,7 @@ ;; ::= (lambda ( ...) exp) ;; | | | #t | #f ;; Atomic expressions are guaranteed to terminate without side effects or errors +;; - All arguments to lambdas are atomic ;; - All complex (non-atomic) expressions are let-bound or in a tail position ;; - All let expressions bind a single var ;; - begin expressions are decomposed