unfold/fold
unfold/fold
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[] -> 0x:xs -> 2*x + sum (double xs)
==> (fold sumdouble)
sumdouble l = case l of[] -> 0x:xs -> 2*x + sumdouble xs