Change ordering on lammbda_calculus example

This commit is contained in:
Martin Fredin 2023-05-26 08:03:41 +02:00
parent 930bcc9bba
commit d2a1ca97d7

View file

@ -24,6 +24,15 @@ insert : Char -> Val -> Cxt -> Cxt
insert x v cxt = case cxt of insert x v cxt = case cxt of
Cxt ps => Cxt (Cons (Pair x v) ps) 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 -> Val
eval cxt exp = case exp of eval cxt exp = case exp of
EAbs x e => VClosure cxt x e 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 let i2 = case eval cxt e2 of { VInt i => i } in
VInt (i1 + i2) VInt (i1 + i2)
-- (λx. x + x) 200
exp = EApp
(EAbs 'x'
(EAdd
(EVar 'x')
(EVar 'x')))
(EInt 200)
main : Int main : Int
main = case eval (Cxt Nil) exp of main = case eval (Cxt Nil) exp of
VInt i => i VInt i => i