Closures

bisher:

eval env x = case x of ...
  Abs n b -> ValFun $ \ v -> 
    eval (extend env n v) b
  App f a -> 
    with_fun ( eval env f ) $ \ g -> 
    with_val ( eval env a ) $ \ v -> g v
alternativ: die Umgebung von Abs in die Zukunft transportieren:
eval env x = case x of ...
  Abs n b -> ValClos env n b
  App f a -> ...



Johannes Waldmann 2014-03-31