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