>>> # ===== Standard Library ===== # SK Pack S = λx. λy. λz. x z (y z) K = λx. λy. x I = S K K ι = λf. (f S) K # Boolean Pack T = λx. λy. x F = λx. λy. y IfThenElse = λe. λu. λv.e u v # List Pack Nil = λc. λn. n Cons = λh. λt. λc. λn. c h (t c n) # Natural Number Pack 0 = λf. λs. s 1 = λf. λs. f s 2 = λf. λs. f (f s) 3 = λf. λs. f (f (f s)) IsZero = λn. n (λx. F) T Succ = λn. λf. λs. f (n f s) Plus = λn. λm. n Succ m Mul = λn. λm. n (Plus m) 0 Prev = λn. λf. λx. n (λg. λh. h (g f)) (λu. x) λu. u # High Order Functions # TODO # Recursion Ω = λx. x x Y = λf. (λx. f (x x)) λx. f (x x) Z = λf. (λx. f (λy. (x x) y)) (λx. f (λy. (x x) y)) Fact = λf. λn. IfThenElse (IsZero n) 1 (Mul n (f (Prev n))) # ===== Test ===== @eval write_your_expr_here