unfold/fold

Computing Dictionary

unfold/fold definition


A program transformation where a recursive call to a function is unfolded to an instance of the function's body and then later an instance of the function's body is replaced by a call. E.g.
sumdouble l = sum (double l)
double l = case l of [] -> [] x:xs -> 2*x + double xs
==> (unfold double)
sumdouble l = sum (case l of [] -> [] x:xs -> 2*x : double xs)
==> (distribute over case)
sumdouble l = case l of [] -> sum [] x:xs -> sum (2*x : double xs)
==> (unfold sum)
sumdouble l = case l of [] -> 0 x:xs -> 2*x + sum (double xs)
==> (fold sumdouble)
sumdouble l = case l of [] -> 0 x:xs -> 2*x + sumdouble xs
(1994-11-03)

The Free On-line Dictionary of Computing, © Denis Howe 2010 http://foldoc.org
Cite This Source
Explore Dictionary.com
Previous Definition: unfold
Next Definition: unfoliaged
Words Near: unfold/fold
More from Thesaurus.com
Synonyms and Antonyms for unfold/fold
More from Reference.com
Search for articles containing unfold/fold
More from Dictionary.com Translator
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