aboutsummaryrefslogtreecommitdiffstats
path: root/test/examples
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/examples
parentadd inject-primitive (diff)
debruijnize converts functions to curry form
Diffstat (limited to 'test/examples')
-rw-r--r--test/examples/untyped-lambda-calculus.scm17
1 files changed, 16 insertions, 1 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))))))