vertespain / langages

tp de langages prog

Clone this repository (size: 30.7 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/vertespain/langages/

Changed (Δ14 bytes):

raw changeset »

tp1/psil.hs (3 lines added, 4 lines removed)

Up to file-list tp1/psil.hs:

@@ -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
---------------------------------------------------------------------------