vertespain / langages
tp de langages prog
Clone this repository (size: 30.7 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/vertespain/langages/
| commit 15: | 476149b5ebca |
| parent 14: | 623402fab984 |
| branch: | default |
more succinct
Changed (Δ14 bytes):
raw changeset »
tp1/psil.hs (3 lines added, 4 lines removed)
| … | … | @@ -289,8 +289,9 @@ eval env (Llambda formals e) = |
289 |
289 |
eval (foldr (\ (x,v) e -> einsert e x v) |
290 |
290 |
env (zip formals actuals)) |
291 |
291 |
e) |
292 |
eval env (Lcall lambda args) = vapply (eval env lambda) |
|
293 |
[eval env arg | arg <- args] |
|
292 |
eval env (Lcall lambda actuals) = case (eval env lambda) of |
|
293 |
Vfun f -> f (map (eval env) actuals) |
|
294 |
_ -> error "Not a lambda function" |
|
294 |
295 |
eval env (Lapp f actuals) = |
295 |
296 |
case elookup env f of |
296 |
297 |
Vfun f -> f (map (eval env) actuals) |
| … | … | @@ -306,8 +307,6 @@ eval env (Lfix decls e) = |
306 |
307 |
env decls) |
307 |
308 |
in eval newenv e |
308 |
309 |
|
309 |
vapply :: Value -> [Value] -> Value |
|
310 |
vapply (Vfun f) args = f args |
|
311 |
310 |
--------------------------------------------------------------------------- |
312 |
311 |
-- Toplevel -- |
313 |
312 |
--------------------------------------------------------------------------- |
