generated at
展開(unfold)
値から値(リストのことが多い)を生成する




参考


unfold
hs
unfold :: (t -> Bool) -> (t -> a) -> (t -> t) -> t -> [a] unfold p h t x | p x = [] |otherwise = h x : unfold p h t (t x)
p
終了を判定する述語
Trueの場合に終了する
h
リストの先頭要素を作る関数
t
次の再帰に渡す値を作る
展開して残りの部分を作るための種を与える
x






unfoldについての論文

『プログラミングHaskell』 7章に載っているらしい