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)
Try this search on Wikipedia, OneLook, Google
Nearby terms: undocumented feature « U-NET Limited « unfold « unfold/fold » UNI » unicast » Unicode