iterate :: (a -> a) -> a -> [a]
(おそらくご存じのとおり)iterateは、関数と開始値を取る関数です。次に、関数を開始値に適用し、同じ関数を最後の結果に適用する、というように続きます。
Prelude> take 5 $ iterate (^2) 2
[2,4,16,256,65536]
Prelude>
結果は無限リストです。(それが私が使用する理由ですtake)。私の質問ですが、基本 (ラムダ、パターン マッチング、ガードなど)iterate'のみを使用して、Haskell で独自の関数をどのように実装しますか?(:) (++)
(Haskell初心者はこちら)