Como você (re) implementaria a iteração no Haskell?
iterate :: (a -> a) -> a -> [a]
(Como você deve saber)iterate
é uma função que assume uma função e valor inicial. Em seguida, aplica a função ao valor inicial, depois aplica a mesma função ao último resultado, e assim por diante.
Prelude> take 5 $ iterate (^2) 2
[2,4,16,256,65536]
Prelude>
O resultado é uma lista infinita. (é por isso que eu usotake
) Minha pergunta, como você implementaria seu próprioiterate'
função no Haskell, usando apenas o básico ((:)
(++)
lambdas, combinação de padrões, guardas etc.)?
(Haskell iniciante aqui)