den Code Haskell Auswertung hier:Verzögerte Auswertung in Haskell mit zipWith und zwei unendliche Listen
lazee = 0 : zipWith (+) (map (+1) lazee) (map (2*) lazee)
und dann take 5 lazee
Aufruf ergibt dieses Ergebnis:
[0,1,4,13,40]
Ich verstehe nicht, in welcher Reihenfolge Die obigen Funktionen werden ausgewertet. Sie sind unendliche Listen und ich habe ein bisschen Mühe, meinen Kopf darum zu wickeln. Folglich bin ich mir nicht sicher, wie Haskell dieses Ergebnis erhalten hätte.
Sie können sich eine Reihe mit 'a [n + 1] = (a [n] +1) + (2 * a [n])' denken, beginnend mit 'a [0] = 0', was ist äquivalent zu '3a [n] + 1'. – karakfa
@karakfa Macht Sinn, thx =) –