Hi,
  I feel embarrased when I post newbie questions after one year
of decent Haskell programming. But it feels much better to ask than to
suffer in ignorance. 

My newbie question is: Could anyone explain why the second version of the
following function is better. 

Is there a tutorial kind of paper(or related) that gives programmer-view
of closures? In particular when they are created, what do they contain and
where and how they should be avoided to make program faster.

Thank you very much,
Saswat

 
> You can see what is going on if you give the flag -ddump-simpl
> to GHC, and then look for the function Main.eval.  You'll see
> that eval has a shape like
> 
>       eval (Var x)     = let ... in \env -> ...
>       eval (Add u v) = let ... in \env -> ...
> 
> This is bad, because eval is building a function closure for
> the \env, instead of taking its two arguments together as does
> simplEval.  We'd prefer
> 
>       eval (Var x)     env = let ... in ...
>       eval (Add u v) env = let .. in ...






_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to