(let ((div2 (lambda (n) (n (lambda (x) (x (lambda (so-far odd?) (odd? ;; lambda (p) here and after is inlined cons (lambda (p) (p ;; Inlined successor (lambda (f x) (f (so-far f x))) nil)) ;; cons so-far t (lambda (p) (p so-far t)))))) (lambda (p) (p 0 nil))))) (fixpoint-combinator2 #+nil (lambda (g) (let ((inner (lambda (x) (g (x x))))) (inner inner))) (lambda (f) (let ((inner (lambda (x) (f (lambda (y z) (x x y z)))))) (inner inner)))) (ascii-zero (lambda (f) (2 2 2 (3 f)))) (ascii-one (lambda (f x) (f (ascii-zero f x)))) (binary (fixpoint-combinator2 (lambda (recur acc n) ((div2 n) (lambda (res rem) (let ((todigit (lambda (x) (x ascii-one ascii-zero)))) (res (lambda (x) ;; cons ascii acc (recur (lambda (p) (p (todigit rem) acc)) res)) ;; cons ascii acc (lambda (p) (p (todigit rem) acc)))))))))) (binary nil))