@InProceedings{evalapply04, author = {Simon Marlow and Simon {Peyton Jones}}, title = {Making a fast curry: push/enter vs. eval/apply for higher-order languages}, booktitle = {ICFP'04: Proceedings of the ACM SIGPLAN 2004 International Conference on Functional Programming}, year = {2004}, 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. }, url = {http://www.haskell.org/~simonmar/papers/eval-apply.pdf}, doi = {http://doi.acm.org/10.1145/1016848.1016856}, isbn = {1-58113-905-5}, pages = {4--15}, publisher = {ACM Press} }