【发布时间】:2018-04-08 19:39:38
【问题描述】:
我目前正在研究 Haskell。我知道我必须使数据类型成为 Eq 的实例才能比较它们。 但是 Int 应该已经可以比较了吧?所以我不知道如何处理以下错误:
• 没有因使用“==”而导致 (Eq (Int -> Int)) 的实例 (也许您没有将函数应用于足够多的参数?)
我的代码如下:
myRandomList = [1,2,3,4,5,6,7,8,9,10]
myFilterList :: [Int] -> [Int]
myFilterList [] = []
myFilterList (x:xs)
| mod x == 0 = x : myFilterList xs
| otherwise = myFilterList xs
myDotFunc = map (+ 1) . myFilterList . myRandomList
Ps:我什至不确定,如果我的代码可以在没有这个错误的情况下运行,请记住我刚刚开始使用 haskell :)
【问题讨论】:
-
好吧
mod x不是数字,你需要提供一个额外的参数。 -
不是说位置更多吗?
-
而且
myRandomList不是函数,myDotFunc应该是myDotFunc = map (+1) . myFilterList。 -
为什么这被否决了?这不是一个坏问题。
标签: haskell instance equals comparable