From 1c4a175e00e727ac4987f60503bd7dbaeb3f26ad Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Tue, 28 Oct 2025 16:42:28 +0100 Subject: wip: use de Bruijn indices representation provide sample complex terms to evaluate --- lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lambda-calcul/haskell/src/Minilang/Lambda/Eval.hs') 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")))) -- cgit v1.3.1