racket/collects/tests/stepper/intermediate-y.ss
2005-05-27 18:56:37 +00:00

14 lines
511 B
Scheme

(let ((Y (lambda (f)
(let ((g (lambda (x)
(apply f (list (lambda (z1 z2)
(apply (apply x (list x)) (list z1 z2))))))))
(g g))))
(newappend (lambda (ap)
(lambda (x y)
(if (null? x)
y
(cons (first x)
(apply ap (list (rest x) y)))))))
(l (cons 1 (cons 2 (cons 3 null)))))
(apply (Y newappend) (list l l)))