J. Functional Programming 9 (4): 355–372, July 1999. Printed in the United Kingdom c ! 1999 Cambridge University Press 355 A tutorial on the universality and expressiveness of fold GRAHAM HUTTON University of Nottingham, Nottingham, UK http://www.cs.nott.ac.uk/-gmh Abstract In functional programming, fold is a standard operator that encapsulates a simple pattern of recursion for processing lists.