tail recursion modulo cons

Computing Dictionary

tail recursion modulo cons definition

programming, compiler
A generalisation of tail recursion introduced by D.H.D. Warren. It applies when the last thing a function does is to apply a constructor functions (e.g. cons) to an application of a non-primitive function. This is transformed into a tail call to the function which is also passed a pointer to where its result should be written. E.g.
f [] = [] f (x:xs) = 1 : f xs
is transformed into (pseudo C/Haskell):
f [] = [] f l = f' l allocate_cons
f' [] p = *p = nil; return *p f' (x:xs) p = cell = allocate_cons; *p = cell; cell.head = 1; return f' xs &cell.tail
where allocate_cons returns the address of a new cons cell, *p is the location pointed to by p and &c is the address of c.
[D.H.D. Warren, DAI Research Report 141, University of Edinburgh 1980].
(1995-03-06)
The Free On-line Dictionary of Computing, © Denis Howe 2010 http://foldoc.org
Cite This Source
Explore Dictionary.com
Previous Definition: tail recursion
More from Thesaurus.com
Synonyms and Antonyms for tail recursion modulo cons
More from Reference.com
Search for articles containing tail recursion modulo cons
Dictionary.com Word FAQs

Dictionary.com presents 366 FAQs, incorporating some of the frequently asked questions from the past with newer queries.

Copyright © 2014 Dictionary.com, LLC. All rights reserved.
  • Please Login or Sign Up to use the Recent Searches feature