From d2a1ca97d74d58606585246dcba4a4d683ee45a5 Mon Sep 17 00:00:00 2001 From: Martin Fredin Date: Fri, 26 May 2023 08:03:41 +0200 Subject: [PATCH] Change ordering on lammbda_calculus example --- demo/lambda_calculus.crf | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/demo/lambda_calculus.crf b/demo/lambda_calculus.crf index d9ab5fe..e0f6377 100644 --- a/demo/lambda_calculus.crf +++ b/demo/lambda_calculus.crf @@ -24,6 +24,15 @@ insert : Char -> Val -> Cxt -> Cxt insert x v cxt = case cxt of Cxt ps => Cxt (Cons (Pair x v) ps) + +-- (λx. x + x) 200 +exp = EApp + (EAbs 'x' + (EAdd + (EVar 'x') + (EVar 'x'))) + (EInt 200) + eval : Cxt -> Exp -> Val eval cxt exp = case exp of EAbs x e => VClosure cxt x e @@ -39,14 +48,6 @@ eval cxt exp = case exp of let i2 = case eval cxt e2 of { VInt i => i } in VInt (i1 + i2) --- (λx. x + x) 200 -exp = EApp - (EAbs 'x' - (EAdd - (EVar 'x') - (EVar 'x'))) - (EInt 200) - main : Int main = case eval (Cxt Nil) exp of VInt i => i