所以我是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 _ = []