diff options
| author | 2024-12-31 13:08:04 -0500 | |
|---|---|---|
| committer | 2024-12-31 13:08:04 -0500 | |
| commit | c6c55fcfb4bfcecce571fd7f13b55e24ead0a0ac (patch) | |
| tree | 64b9d669b950523cd66505ae8bbe39b5ecf48462 | |
| parent | start cps translator (diff) | |
fix lambda cps printing
| -rw-r--r-- | cps.scm | 4 | ||||
| -rw-r--r-- | test.scm | 11 |
2 files changed, 13 insertions, 2 deletions
@@ -87,8 +87,8 @@ `(kappa ,formal ,metakont ,(cps->sexpr cps-cmd))) (after ((let (cps-closure=> form) => (formal metakont-formal kont-formal body))) - `(pass (lambda ((,metakont-formal ,kont-formal) ,formal) - ,(cps->sexpr body)))) + `(lambda ((,metakont-formal ,kont-formal) ,formal) + ,(cps->sexpr body))) (after ((let (cps-apply-kont=> form) => (to-pass metakont kont))) (let ((to-pass (if (cps-closure? to-pass) (cps->sexpr to-pass) @@ -31,3 +31,14 @@ '(apply f (x) () (kappa (__v2) __γ1 (apply x (__v2) __γ1 __toplevel))) (cps->sexpr (core->cps '(x (f x))))) +(test "identity" + '(pass (lambda ((__γ1 __κ2) (x)) (pass (x) __γ1 __κ2)) () __toplevel) + (cps->sexpr (core->cps '(lambda (x) x)))) + +(test "let bind" + '(pass (lambda ((__γ3 __κ4) (x)) + (pass (x) __γ3 __κ4)) () + (kappa (__v2) __γ1 + (apply __v2 (y) __γ1 __toplevel))) + (cps->sexpr (core->cps '((lambda (x) x) y)))) + |
