Derek Elkins <[EMAIL PROTECTED]> wrote: > On Wed, 2008-01-09 at 00:51 +0100, Achim Schneider wrote: > > Fernando Rodriguez <[EMAIL PROTECTED]> wrote: > > > > > > > > Hi, > > > > > > Is currying in Haskell the same thing as Partial Evaluation > > > (http://en.wikipedia.org/wiki/Partial_evaluation)? Am I getting > > > partial evaluation for free just by using Haskell? > > > > > No, currying is this: > > No, it is not. This is partial application. See the wiki page Neil > referenced. > Which works because of the functions being curried... of course, the usage is to "partly" apply a function, which is not possible, as all Haskell functions are, by default, curried, and thus only have one parameter, which can either be applied or not.
Partial evaluation, OTOH, goes into the direction of laziness vs. eagerness: Iff the compiler sees that a thunk is only dependent on data known at compile-time, it may choose to evaluate this thunk already at compile-time, if you're lucky and the compiler isn't lazy, main = putStrLn $ show $ 1 + 2 might end up being main = putStrLn "3" in the object file. -- (c) this sig last receiving data processing entity. Inspect headers for past copyright information. All rights reserved. Unauthorised copying, hiring, renting, public performance and/or broadcasting of this signature prohibited. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe