Factorising folds for faster functions

  • Authors:
  • Graham Hutton;Mauro Jaskelioff;Andy Gill

  • Affiliations:
  • University of nottingham, nottingham, uk (e-mail: gmh@cs.nott.ac.uk);Universidad nacional de rosario, rosario, argentina (e-mail: mauro@fceia.unr.edu.ar);University of kansas, lawrence, ks, usa (e-mail: andygill@ku.edu)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The worker/wrapper transformation is a general technique for improving the performance of recursive programs by changing their types. The previous formalisation (A. Gill & G. Hutton, J. Funct. Program., vol. 19, 2009, pp. 227–251) was based upon a simple fixed-point semantics of recursion. In this paper, 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.