generated at
unfoldr

foldrの双対
Data.Listで提供されている



定義
hs
unfoldr :: (a -> Maybe (b,a)) -> a -> [b] unfoldr f x = case f x of Nothing -> [] Just (z,x') -> z : unfoldr f x'
\a -> Maybe (b, a) の実行を再帰的に行い、Nothingなら停止する
第1引数
\x -> Just (b, a) だとすると、
x が与えられた値
b が先頭要素
a が次の再帰に渡すリストの残り
fold/unfoldの練習#609cd4571982700000ccd317とかがわかりやすいかな