aboutsummaryrefslogtreecommitdiffstats
path: root/test/run.scm
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-06-28 15:40:09 -0400
committerGravatar Peter McGoron 2025-06-28 15:40:09 -0400
commit343ceaae699bef4109525c8a1797b44defaf5b01 (patch)
treef87226c6b3ec204af78b17a5a3841afd9c84f367 /test/run.scm
parentChange environments in untyped LC to use location comparators instead of (diff)
Fix list ellipses pattern matching
A lot of multisyntax was written to use `unwrap-syntax` deliberately, which I now see as a mistake. Implict unwrapping using `syntax-cxr` (and maybe variants like `syntax-vector-ref`) is probably less error prone.
Diffstat (limited to '')
-rw-r--r--test/run.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/run.scm b/test/run.scm
index 201c849..dfcaf97 100644
--- a/test/run.scm
+++ b/test/run.scm
@@ -62,6 +62,24 @@
(empty-wrap '(let (x (lambda x x)) (x x)))))))
(display (alpha expanded-list)) (newline))
+(let-values (((global-map expanded-list)
+ (expand initial-environment
+ (list (empty-wrap
+ '(define-syntax let
+ (syntax-rules ()
+ ((let ((name value)) body)
+ ((lambda name body) value)))))
+ (empty-wrap
+ '(define-syntax or
+ (syntax-rules ()
+ ((or) false)
+ ((or x y ...)
+ (let ((tmp x))
+ (if tmp x (or y ...)))))))
+ (empty-wrap
+ '(or a b tmp c d e))))))
+ (display (alpha expanded-list)) (newline))
+
#;(begin
(load "examples/untyped-lambda-calculus.sld")
(import (multisyntax examples untyped-lambda-calculus test))