13

繰り返しは次のように定義されます。

repeat :: a -> [a]
repeat x = xs where xs = x:xs

以下が使用されない理由はありますか?

repeat :: a -> [a]
repeat x = x : repeat x

(明らかに、多くの Prelude 関数には同等の定義が多数ありますが、後者の説明の方がはるかに明白に感じられます。パフォーマンスやスタイルに理由があるのだろうかと思います。)

4

1 に答える 1