Name: Anonymous 2007-09-25 8:38 ID:o8HQ8qmh
cons = lambda a, b: lambda pick: {1: a, 2: b}[pick]
car = lambda x: x(1)
cdr = lambda x: x(2)
car = lambda x: x(1)
cdr = lambda x: x(2)
import operator as op
cons = lambda a: lambda b: lambda c: b if c else a
car = lambda x: x(False)
cdr = lambda x: x(True)length = lambda x: 0 if op.eq(None, x) else op.add(1, length(cdr(x)))
l = cons(1)(cons(2)(cons(3)(None)))
print length(l) # ==> 3
(define cons
(lambda (a b)
(lambda (m)
(m a b))))
(define car
(lambda (x)
(x (lambda (a b) a))))
(define cdr
(lambda (x)
(x (lambda (a b) b))))
cons = lambda a, b: lambda m: m(a, b)
car = lambda x: x(lambda a, b: a)
cdr = lambda x: x(lambda a, b: b)