[pgh-pm] More links: "How to make a fast curry: push/enter vs eval/apply"

Tom Moertel tom at moertel.com
Thu Mar 10 11:22:31 PST 2005


Here is the paper that I mentioned in response to Barrie's question 
about how currying is implemented in functional programming languages:

"How to make a fast curry: push/enter vs eval/apply," Simon Marlow and 
Simon Peyton Jones, Proc. International Conference on Functional 
Programming, Snowbird, Sept 2004, pp4-15.

Abstract:

     Higher-order languages that encourage currying are implemented
     using one of two basic evaluation models: push/enter or
     eval/apply. Implementors use their intuition and qualitative
     judgements to choose one model or the other.

     Our goal in this paper is to provide, for the first time, a more
     substantial basis for this choice, based on our qualitative and
     quantitative experience of implementing both models in a
     state-of-the-art compiler for Haskell.

     Our conclusion is simple, and contradicts our initial intuition:
     compiled implementations should use eval/apply.

http://research.microsoft.com/Users/simonpj/Papers/eval-apply/index.htm

Cheers,
Tom



More information about the pgh-pm mailing list