iterate
結果が次のようになるように関数を変更するにはどうすればよいですか
f x, (f^2)x, (f^4)x, (f^8)x, ...
誰かが私に何か提案をしてくれたらとても嬉しいです。
与えられて、それは私が言うだろうに適用されるx倍をf^x
意味しますf
x
iterate :: (a -> a) -> a -> [a]
iterate f x = f x : iterate (f . f) x
十分でしょう。
別:
Prelude> map snd $ iterate (\(f,x) -> (f.f, f x)) ((+1),1)
[1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,...