Powtórz is defined następująco:Dlaczego powtarzanie jest zdefiniowane w Preludium takim, jakie jest?
repeat :: a -> [a]
repeat x = xs where xs = x:xs
Czy jest jakiś powód, że poniższe nie jest używany?
repeat :: a -> [a]
repeat x = x : repeat x
(Oczywiście istnieje wiele równoważne definicje dla wielu funkcji Prelude, ale mój ostatni opis prostu czuje się znacznie bardziej oczywiste. Zastanawiam się, czy istnieje wydajność lub styl powodem tak jest.)
[Zobacz moją odpowiedź tutaj] (http://stackoverflow.com/questions/16632143/why-recursive-let-make-space-effcient/16632403#16632403). Definicja tam używa 'let', ale to samo zachowanie z' where'. – hammar