unfold/fold
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
Last updated: 1994-11-03
Nearby terms:
undocumented feature ♦ U-NET Limited ♦ unfold ♦ unfold/fold ♦ UNI ♦ unicast ♦ Unicode
Try this search on Wikipedia, Wiktionary, Google, OneLook.
Loading