iterate f x returns an infinite list of repeated
applications of
f to
x:
iterate f x == [x, f x, f (f x), ...]
Laziness
Note that
iterate is lazy, potentially leading to thunk
build-up if the consumer doesn't force each iterate. See
iterate' for a strict variant of this function.
>>> take 1 $ iterate undefined 42
[42]
Examples
>>> take 10 $ iterate not True
[True,False,True,False,True,False,True,False,True,False]
>>> take 10 $ iterate (+3) 42
[42,45,48,51,54,57,60,63,66,69]
iterate id == repeat:
>>> take 10 $ iterate id 1
[1,1,1,1,1,1,1,1,1,1]