diff options
author | tzlil <tzlils@protonmail.com> | 2023-04-14 23:46:53 +0300 |
---|---|---|
committer | tzlil <tzlils@protonmail.com> | 2023-04-14 23:46:53 +0300 |
commit | fdf35536b66499884dd5b4e1740ac67e5cebb1a2 (patch) | |
tree | b907edf782ebb58780d7fbfed084560626b94c74 /tests/examples/fac-three.lam |
add homework material
Diffstat (limited to 'tests/examples/fac-three.lam')
-rw-r--r-- | tests/examples/fac-three.lam | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/examples/fac-three.lam b/tests/examples/fac-three.lam new file mode 100644 index 0000000..613c933 --- /dev/null +++ b/tests/examples/fac-three.lam @@ -0,0 +1,31 @@ +(\ zero one two three succ plus mult pred minus isZero yComb . + (\ fac . + fac three + -- NOTE: the y-combinator does not have a normal form + ) (yComb (\ f n . (isZero n) one (mult n (f (pred n))))) +) + +-- zero +(\ f x . x) +-- one +(\ f x . f x) +-- two +(\ f x . f (f x)) +-- three +(\ f x . f (f (f x))) + +-- succ +(\n f x . f (n f x)) +-- plus +(\m n f x . m f (n f x)) +-- mult +(\m n f . m (n f)) +-- pred +(\n f x . n (\ g h . h (g f)) (\ u . x) (\ u . u)) +-- minus +(\ m n . n (\n f x . n (\ g h . h (g f)) (\ u . x) (\ u . u)) m) +-- isZero +(\ n . n (\ x . (\ x y . y)) (\ x y . x)) + +-- yComb +(\ f . (\ x . f (x x)) (\ x . f (x x))) |