Wie würden Sie die Iteration in Haskell (erneut) implementieren?

iterate :: (a -> a) -> a -> [a]

(Wie du wahrscheinlich weißt)iterate ist eine Funktion, die eine Funktion und einen Startwert annimmt. Dann wendet es die Funktion auf den Startwert an, dann wendet es die gleiche Funktion auf das letzte Ergebnis an und so weiter.

Prelude> take 5 $ iterate (^2) 2
[2,4,16,256,65536]
Prelude> 

Das Ergebnis ist eine unendliche Liste. (deshalb benutze ichtake). Meine Frage, wie würden Sie Ihre eigenen @ implementieriterate' -Funktion in Haskell, nur mit den Grundlagen (:) (++) Lambdas, Pattern Mataching, Wachen, etc.)?

(Haskell Anfänger hier)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage