A Tutorial on the Universality and Expressiveness of Fold

Hutton, Graham (1999) A Tutorial on the Universality and Expressiveness of Fold. Journal of Functional Programming, 9 (4). pp. 355-372.

[img] PDF - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader
Download (191kB)

Abstract

In functional programming, fold is a standard operator that encapsulates a simple pattern of recursion for processing lists. This article is a tutorial on two key aspects of the fold operator for lists. First of all, we emphasize the use of the universal property of fold both as a proof principle that avoids the need for inductive proofs, and as a definition principle that guides the transformation of recursive functions into definitions using fold. Secondly, we show that even though the pattern of recursion encapsulated by fold is simple, in a language with tuples and functions as first-class values the fold operator has greater expressive power than might first be expected.

Item Type: Article
Schools/Departments: University of Nottingham UK Campus > Faculty of Science > School of Computer Science
Depositing User: Hutton, Graham
Date Deposited: 26 Oct 2005
Last Modified: 09 Oct 2007 15:50
URI: http://eprints.nottingham.ac.uk/id/eprint/224

Actions (Archive Staff Only)

Edit View Edit View