summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs')
-rw-r--r--lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs29
1 files changed, 29 insertions, 0 deletions
diff --git a/lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs b/lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs
index cbbdc51..35f9460 100644
--- a/lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs
+++ b/lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs
@@ -42,3 +42,32 @@ evalNeed (App f a) env =
in case evalNeed f env of
Abs x body env' -> evalNeed body ((x, a') : env')
f' -> Ap f' a'
+
+x =
+ App
+ ( App
+ ( App
+ ( App
+ ( App
+ ( App
+ ( App
+ ( App
+ ( App
+ (Lam "False" (Lam "True" (Lam "If" (Lam "Zero" (Lam "Succ" (Lam "One" (Lam "Two" (Lam "Three" (Lam "IsZero" (App (Var "IsZero") (Var "Two")))))))))))
+ (Lam "f" (Lam "t" (Var "f")))
+ )
+ (Lam "f" (Lam "t" (Var "t")))
+ )
+ (Lam "b" (Lam "x" (Lam "y" (App (App (Var "b") (Var "x")) (Var "y")))))
+ )
+ (Lam "z" (Lam "s" (Var "z")))
+ )
+ (Lam "n" (Lam "z" (Lam "s" (App (Var "s") (Var "n")))))
+ )
+ (App (Var "Succ") (Var "Zero"))
+ )
+ (App (Var "Succ") (Var "One"))
+ )
+ (App (Var "Succ") (Var "Two"))
+ )
+ (Lam "n" (App (App (Var "n") (Var "True")) (Lam "m" (Var "False"))))