id:NyaRuRu:20070722#p2 のお題がおもしろいので、unfold 書いてみました。Orcas 立ち上げるのが面倒だったので C#2.0 で。 コードは最後にして、その前にいろいろと。 unfold ??? まずは unfold が何なのかわからなかったので Haskell の定義から。Hugs の List.hs から引用。 名前からして fold の反対だろうとは思うけど、畳み込みの反対って余計想像できなかったりw unfoldr :: (b -> Maybe (a, b)) -> b -> [a] unfoldr f b = case f b of Just (a,new_b) -> a : unfoldr f new_b Nothing -> []Haskell には unfoldr がありました。foldr、foldl はありますが、unfoldl はなさそう。