14 lines
511 B
Scheme
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)))
|