From ff5055664b1bce75a94fb71c56a7ed5a50c68810 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 4 Dec 2017 17:59:22 -0500 Subject: [PATCH] WIP --- tests/when.scm | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/tests/when.scm b/tests/when.scm index b41ac5b4..85c554b0 100644 --- a/tests/when.scm +++ b/tests/when.scm @@ -5,5 +5,46 @@ (if test (begin result1 result2 ...))))) +(define-syntax my-when2 + (syntax-rules () + ((my-when test result1 result2 ...) + (list test)))) + (write - (my-when #t 1)) + (my-when2 #t 1)) + + (define my-when2* + (lambda (expr$28 rename$29 compare$30) + (car ((lambda (tmp$42) + (if tmp$42 + tmp$42 + (cons (error "no expansion for" expr$28) #f))) + ((lambda (v.1$36) + (if (pair? v.1$36) + ((lambda (v.2$37) + ((lambda (test) + ((lambda (v.3$38) + (if (pair? v.3$38) + ((lambda (v.4$39) + ((lambda (result1) + ((lambda (v.5$40) + (if (list? v.5$40) + ((lambda (result2) + (cons (cons-source + (rename$29 'list) + (cons-source test '() '(test)) + '(list test)) + #f)) + v.5$40) + #f)) + (cdr v.3$38))) + v.4$39)) + (car v.3$38)) + #f)) + (cdr v.1$36))) + v.2$37)) + (car v.1$36)) + #f)) + (cdr expr$28)))))) +(write + (my-when2* '(my-when2* 't 1) (lambda (a) a) (lambda X #f)))