Repeat is defined wie folgt:Warum ist die Wiederholung in Prelude so definiert?
repeat :: a -> [a]
repeat x = xs where xs = x:xs
Gibt es einen Grund, dass die folgenden verwendet wird, nicht?
repeat :: a -> [a]
repeat x = x : repeat x
(Offensichtlich gibt es viele äquivalente Definitionen für viele Prelude Funktionen, aber meine letztere Beschreibung nur fühlt sich viel mehr auf der Hand. Ich frage mich, ob eine Leistung oder Stil Grund für die Art und Weise gibt es es ist.)
[Siehe meine Antwort hier] (http://stackoverflow.com/questions/16632143/why-recursive-let-make-space-effcient/16632403#16632403). Die Definition dort verwendet 'Let', aber es ist das gleiche Verhalten mit' Where'. – hammar