(define (to-church n) (letrec ((recur (lambda (n acc) (if (= 0 n) acc (recur (- n 1) (lambda (f) (lambda (x) (f ((acc f) x))))))))) (recur n (lambda (f) (lambda (x) x))))) (define (encode char) (case char ((#\+) (to-church 1)) ((#\-) (to-church 2)) ((#\>) (to-church 3)) ((#\<) (to-church 4)) ((#\,) (to-church 5)) ((#\.) (to-church 6)) ((#\[) (to-church 7)) ((#\]) (to-church 8)))) (define (to-int church) ((church (lambda (n) (+ 1 n))) 0)) (define bf (lambda (prog) (((((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (lst) ((((lambda (f) f) ((lambda (m) (lambda (a) (lambda (b) ((m b) a)))) ((lambda (f) (f (lambda (x) (lambda (y) x)))) lst))) ((lambda (func) ((((((func f) prog) i) m) pt) stk)) ((lambda (char) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p x)))))) ((lambda (modfunc) (lambda (ccont) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (new-m) (((((ccont prog) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) new-m) pt) stk)) (((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) (lambda (v) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) v) x))) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) v)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) x)))))))) m) pt) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (m) (lambda (n) ((((lambda (f) f) (((lambda (m) (lambda (n) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) m) n)))) n) m)) (lambda (x) (((f (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) m) n)) n) x))) m))))) (modfunc ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) m) pt))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x))))))))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p (p (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (lambda (p) (lambda (x) (p (p (p (p (p x)))))))))))))))))))) (lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))))) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p (p x))))))) ((lambda (modfunc) (lambda (ccont) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (new-m) (((((ccont prog) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) new-m) pt) stk)) (((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) (lambda (v) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) v) x))) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) v)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) x)))))))) m) pt) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (m) (lambda (n) ((((lambda (f) f) (((lambda (m) (lambda (n) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) m) n)))) n) m)) (lambda (x) (((f (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) m) n)) n) x))) m))))) (modfunc ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) m) pt))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x))))))))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p (p (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (lambda (p) (lambda (x) (p (p (p (p (p x)))))))))))))))))))) (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))))) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p (p (p x)))))))) ((lambda (modfunc) (lambda (ccont) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) (((((ccont prog) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) m) (modfunc pt)) stk)))))))) (lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))))) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p (p (p (p x))))))))) ((lambda (modfunc) (lambda (ccont) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) (((((ccont prog) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) m) (modfunc pt)) stk)))))))) (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))))) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p (p (p (p (p x)))))))))) (lambda (ccont) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (mem-val) ((lambda (new-m) (((((ccont prog) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) new-m) pt) stk)) (((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) (lambda (v) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) v) x))) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) v)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) x)))))))) m) pt) (to-church (char->integer (read-char)))))) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) m) pt))))))))) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p (p (p (p (p (p x))))))))))) (lambda (ccont) (lambda (prog) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (mem-val) ((lambda (dummy) (((((ccont prog) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) m) pt) stk)) (display (integer->char (to-int mem-val))))) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) m) pt))))))))) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) char) (lambda (p) (lambda (x) (p (p (p (p (p (p (p x)))))))))))) (lambda (ccont) (lambda (p) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (mem-val) ((lambda (new-pair) (((((ccont p) ((lambda (f) (f (lambda (x) (lambda (y) x)))) new-pair)) m) pt) ((lambda (f) (f (lambda (x) (lambda (y) y)))) new-pair))) (((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) mem-val)) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) ((((y (lambda (f) (lambda (p) (lambda (i) (((((lambda (f) f) (((lambda (m) (lambda (n) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) m) n)))) ((lambda (l) (((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (l) (lambda (x) (lambda (g) ((((lambda (f) f) ((lambda (f) (f (lambda (x) (lambda (y) x)))) l)) x) (lambda (y) (((g (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) l)) x) g)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) l)) y)))))))) l) (lambda (p) (lambda (x) x))) (lambda (sum) (lambda (p) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) sum))))) p)) i)) (lambda (x) (error "Unmatched brackets! -- find-matching-bracket"))) (lambda (x) x)) (lambda (x) (lambda (y) x))) (lambda (cnt) ((lambda (char) ((lambda (other-tests) (((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) cnt)) (lambda (x) (((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) (lambda (p) (lambda (x) (p (p (p (p (p (p (p (p x))))))))))) char))) (lambda (x) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i))) other-tests) (lambda (x) (lambda (y) x))))) other-tests) (lambda (x) (lambda (y) x)))) (lambda (x) (((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) (lambda (p) (lambda (x) (p (p (p (p (p (p (p (p x))))))))))) char))) (lambda (x) (((f p) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) cnt)))) (lambda (x) (((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y)))))) m))) (lambda (p) (lambda (x) (p (p (p (p (p (p (p x)))))))))) char))) (lambda (x) (((f p) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) cnt)))) (lambda (x) (((f p) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) cnt))) (lambda (x) (lambda (y) x))))) (lambda (x) (lambda (y) x)))))) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) p) i))))))) p) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) (lambda (p) (lambda (x) x)))) stk))) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i)) (((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) stk) ((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i))))) (lambda (x) (lambda (y) x))))) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) m) pt))))))))) (lambda (ccont) (lambda (p) (lambda (i) (lambda (m) (lambda (pt) (lambda (stk) ((lambda (dummy) ((lambda (mem-val) ((lambda (new-idx) (((((ccont p) new-idx) m) pt) stk)) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) mem-val)) (lambda (x) (((lambda (n) (lambda (p) (lambda (x) (p ((n p) x))))) i) x))) (lambda (x) (((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) stk) x))))) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) m) pt))) (((((lambda (f) f) ((lambda (f) (f (lambda (x) (lambda (y) x)))) stk)) (lambda (x) (error "Unmatched brackets! -- right-bracket"))) (lambda (x) x)) (lambda (x) (lambda (y) x)))))))))))))))))) ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) x)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) lst)))) 'done)) ((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (r) (lambda (i) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) i)) (lambda (x) (r x))) (lambda (x) (((f ((lambda (l) ((lambda (f) (f (lambda (x) (lambda (y) y)))) ((lambda (f) (f (lambda (x) (lambda (y) y)))) l))) r)) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) i)) x))))))) prog) i))))))))) ((lambda (p) (((((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (prog) (lambda (lst) (lambda (idx) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) idx)) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) lst) (encode (string-ref prog (to-int idx)))) x))) (lambda (x) ((((f prog) (((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) lst) (encode (string-ref prog (to-int idx))))) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) idx)) x)))))))) p) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) x))) (lambda (x) (lambda (y) x)))) ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) (to-church (string-length p))))) prog)) (lambda (p) (lambda (x) x))) (((lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y)))))) (lambda (f) (lambda (m) ((((lambda (f) f) ((lambda (p) ((p (lambda (x) (lambda (x) (lambda (y) y)))) (lambda (x) (lambda (y) x)))) m)) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) x))) (lambda (x) (lambda (y) x)))) (lambda (x) ((((lambda (l) (lambda (x) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) y))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) x) l)))) (f ((lambda (n) (lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f))))) (lambda (y) x)) (lambda (y) y))))) m))) (lambda (p) (lambda (x) x))) x)))))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) (lambda (p) (lambda (x) (p x)))) (((lambda (m) (lambda (n) ((n ((lambda (m) (lambda (n) ((n (lambda (n) (lambda (p) (lambda (x) (p ((n p) x)))))) m))) m)) (lambda (p) (lambda (x) x))))) (lambda (p) (lambda (x) (p (p (p x)))))) (lambda (p) (lambda (x) (p (p (p x))))))))) (lambda (p) (lambda (x) (p (p (p x)))))))) (lambda (p) (lambda (x) x))) (((lambda (x) (lambda (y) (lambda (f) ((f x) y)))) (lambda (x) (lambda (y) x))) (lambda (x) (lambda (y) x))))))