だから、私は Haskell の初心者で、質問がたくさんあります。私は数冊の本を読んでいて、自分でいくつかのことをやろうとしています.リテラルがeqを実装していないと不平を言っている理由を誰かが説明してもらえますか.eqが必要な理由は理解していますが、私はしません.これが数値ではなくリテラルと見なされる理由や、それを変更する方法がわかりません。
generateListOfRandoms :: a -> b -> c -> d -> [(d, (a, b))]
generateListOfRandoms _ _ 0 _ = []
generateListOfRandoms rangeStart rangeEnd numberOfRandoms randGenerator =
(randGenerator, (rangeStart,rangeEnd)) : generateListOfRandoms rangeStart rangeEnd (numberOfRandoms-1) randGenerator
一部の人が推測できるように、IO関数を指定しようとすると、関数が他の方法で失敗すると確信していますが、なぜこのエラーが発生するのか、今は混乱しています:
src\Main.hs:23:27:
No instance for (Eq c)
arising from the literal `0'
In the pattern: 0
In an equation for `generateListOfRandoms':
generateListOfRandoms _ _ 0 _ = []