aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-07-03 18:56:49 -0400
committerGravatar Peter McGoron 2025-07-03 18:56:49 -0400
commit89371cdb2e9308025a5b2e48e23711e0108bf442 (patch)
tree7a47560ec08b805598dc87a6d3d238f369c3912c /test
parentadd inject-primitive (diff)
debruijnize converts functions to curry form
Diffstat (limited to 'test')
-rw-r--r--test/examples/untyped-lambda-calculus.scm17
-rw-r--r--test/run.scm11
2 files changed, 16 insertions, 12 deletions
diff --git a/test/examples/untyped-lambda-calculus.scm b/test/examples/untyped-lambda-calculus.scm
index a2f308e..c7baedf 100644
--- a/test/examples/untyped-lambda-calculus.scm
+++ b/test/examples/untyped-lambda-calculus.scm
@@ -13,6 +13,21 @@
| limitations under the License.
|#
+(define (curry-form form)
+ (cond
+ ((and (pair? form)
+ (eq? (car form) 'lambda))
+ (list 'lambda (curry-form (cadr form))))
+ ((and (pair? form)
+ (> (length form) 2))
+ (curry-form (cons (list (list-ref form 0)
+ (list-ref form 1))
+ (list-tail form 2))))
+ ((pair? form)
+ (list (curry-form (list-ref form 0))
+ (curry-form (list-ref form 1))))
+ (else form)))
+
(define-syntax test-alpha
(syntax-rules ()
((test-alpha name (inputs ...) output)
@@ -21,7 +36,7 @@
(expand initial-environment
(list (empty-wrap (quote inputs)) ...))))
(test-equal name
- (quote output)
+ (map curry-form (quote output))
(map (lambda (term)
(debruijnize global-map term '()))
expanded-list))))))
diff --git a/test/run.scm b/test/run.scm
index e6055c0..ff3f2ce 100644
--- a/test/run.scm
+++ b/test/run.scm
@@ -31,14 +31,3 @@
(load "examples/untyped-lambda-calculus.sld")
(import (multisyntax examples untyped-lambda-calculus test))
(test-untyped-lambda-calculus)
-
-#;(let-values (((global-map expanded-list)
- (expand initial-environment
- (list (empty-wrap '(define I (lambda x x)))
- (empty-wrap '(I (lambda I I)))))))
- (display (alpha expanded-list)) (newline))
-
-#;(begin
- (load "examples/untyped-lambda-calculus.sld")
- (import (multisyntax examples untyped-lambda-calculus test))
- (test-untyped-lambda-calculus))