1
0
forked from GitHub/gf-core

Update LambdaCalculus.md

This commit is contained in:
Krasimir Angelov
2021-11-03 16:31:28 +01:00
committed by GitHub
parent eb3baa5c43
commit d44ae435c7

View File

@@ -27,14 +27,14 @@ data Value
```
```Haskell
eval env (Vr x) vs = apply (lookup x env) vs
eval env (Cn c) vs = VApp c vs
eval env (App t1 t2) vs = eval env t1 (eval env t2 : vs)
eval env (Abs b x t) [] = return (VClosure env (Abs b x t))
eval env (Abs b x t) (v:vs) = eval ((x,v):env) t vs
eval env (Vr x) vs = apply (lookup x env) vs
eval env (Cn c) vs = VApp c vs
eval env (App t1 t2) vs = eval env t1 (eval env t2 : vs)
eval env (Abs x t) [] = return (VClosure env (Abs b x t))
eval env (Abs x t) (v:vs) = eval ((x,v):env) t vs
apply (VApp c vs0) vs = VApp c (vs0++vs)
apply (VClosure env (Abs b x t)) (v:vs) = eval ((x,v):env) t vs
apply (VApp c vs0) vs = VApp c (vs0++vs)
apply (VClosure env (Abs x t)) (v:vs) = eval ((x,v):env) t vs
```
# Variants