G. Hutton, M. Jaskelioff, and A. Gill, “Factorising folds for faster functions,” Journal of Functional Programming, vol. 20, no. 3-4, pp. 353–373, 2010.



The worker/wrapper transformation is a general technique for improving the performance of recursive programs by changing their types. The previous formalisation (Gill & Hutton, 2009) was based upon a simple fixed point semantics of recursion. In this article we develop a more structured approach, based upon initial algebra semantics. In particular, we show how the worker/wrapper transformation can be applied to programs defined using the structured pattern of recursion captured by fold operators, and illustrate our new technique with a number of examples.


  author = {Graham Hutton and Mauro Jaskelioff and Andy Gill},
  title = {Factorising Folds for Faster Functions},
  journal = {Journal of Functional Programming},
  publisher = {Cambridge University Press},
  volume = {20},
  number = {3-4},
  pages = {353--373},
  year = {2010},