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 xsLast updated: 1994-11-03

Try this search on Wikipedia, OneLook, Google

**Nearby terms:**
undocumented feature « U-NET Limited « unfold « **unfold/fold** » UNI » unicast » Unicode

Loading

Copyright Denis Howe 1985