Explicit binds: effortless efficiency with and without trees

  • Authors:
  • Tarmo Uustalu

  • Affiliations:
  • Institute of Cybernetics, Tallinn University of Technology, Tallinn, Estonia

  • Venue:
  • FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We demonstrate a simple and robust program transformation technique that can improve asymptotic time complexity of data-manipulating programs (e.g., produce a linear-time list reversal function from the obvious quadratic one). In the version of the present paper, it applies to monadic inductive datatypes and can be stated in two flavors, through a datatype representation, with an explicit ("frozen") bind constructor and a special associated defining clause for the fold function, and in a functional form (generalized Church numerals), with a special definition of the bind function in terms of the build constructor. The technique explicates, systematizes, combines and scales a number of ideas known from the literature, achieving a new level of generality.