25. +
λ x y. (λ s z . (x s (y s z)))
function (x, y) {
return function (s, z) {
return x(s(y(s, z)));
}
}
26. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s z . s z)(λ s z . s (s z))
27. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s z . s z)(λ s z . s (s z))
28. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s z . s z)(λ s z . s (s z))
29. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s z . s z)(λ s z . s (s z))
30. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s z . s z)(λ s z . s (s z))
31. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3)) ;; α-equivalent
32. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
33. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
34. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . ((λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))) ;;
β-reduction
35. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
36. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
37. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
38. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
39. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
40. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
41. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
42. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s (s (s z))
43. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s (s (s z))
44. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s (s (s z))
λ s z . z 0
λ s z . s z 1
λ s z . s (s z) 2
λ s z . s (s (s z)) 3
45. 1 + 2
+ 1 2
(λ x y. (λ s z . (x s (y s z))))(λ s2 z2 . s2 z2)(λ s3 z3 . s3
(s3 z3))
λ s z . (λ s2 z2 . s2 z2) s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s ((λ s3 z3 . s3 (s3 z3)) s z))
λ s z . s (s (s z)) = 3
λ s z . z 0
λ s z . s z 1
λ s z . s (s z) 2
λ s z . s (s (s z)) 3
47. Boolean
λ t f . t true
λ t f . f false
function(t, f) {
return t;
}
function(t, f) {
return f;
}
48. if-else
λ b t f . b t f
function(b, t, f) {
return b(t, f);
}
49. if true 1 else 2
if (true) {
return 1;
} else {
return 2;
}
50. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
51. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
52. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
53. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
54. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
55. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
(λ t f . t)(λ s z . s z)(λ s z . s (s z)) ;; β-reduction
56. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
(λ t f . t)(λ s z . s z)(λ s z . s (s z))
57. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
(λ t f . t)(λ s z . s z)(λ s z . s (s z))
(λ s z . s z) ;; β-reduction
58. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
(λ t f . t)(λ s z . s z)(λ s z . s (s z))
λ s z . s z
59. if (true) { return 1; } else { return 2; }
if-else = λ b t f . b t f
true = λ t f . t
1 = λ s z . s z
2 = λ s z . s (s z)
if-else true 1 2
(λ b t f . b t f)(λ t f . t)(λ s z . s z)(λ s z . s (s z))
(λ t f . t)(λ s z . s z)(λ s z . s (s z))
λ s z . s z = 1
64. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f ;; α-equivalent
65. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
66. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3)) ;; β-reduction
67. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
68. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
69. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
f (λ x3 . f (x3 x3)) (λ x3 . f (x3 x3)) ;; β-reduction
70. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
f (λ x3 . f (x3 x3)) (λ x3 . f (x3 x3))
71. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
f (λ x3 . f (x3 x3)) (λ x3 . f (x3 x3))
f (λ x . y (x x)) (λ x . y (x x)) ;; α-equivalent
72. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
f (λ x3 . f (x3 x3)) (λ x3 . f (x3 x3))
f (λ x . y (x x)) (λ x . y (x x))
73. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
f (λ x3 . f (x3 x3)) (λ x3 . f (x3 x3))
f (λ x . f (x x)) (λ x . f (x x))
74. Y f
(λ y . (λ x . y (x x)) (λ x . y (x x)))f
(λ y . (λ x2 . y (x2 x2)) (λ x3 . y (x3 x3)))f
(λ x2 . f (x2 x2)) (λ x3 . f (x3 x3))
f (λ x3 . f (x3 x3)) (λ x3 . f (x3 x3))
f Y f