首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"No instance for“错误

"No instance for“错误
EN

Stack Overflow用户
提问于 2011-06-03 15:27:26
回答 2查看 1.5K关注 0票数 6

遵循http://en.wikibooks.org/wiki/Haskell/Beginning中的示例

代码语言:javascript
复制
Prelude> let abs x = if x < 0 then -x else x
Prelude> abs 5
5
Prelude> abs -3

<interactive>:1:6:
    No instance for (Num (a0 -> a0))
      arising from the literal `3'
    Possible fix: add an instance declaration for (Num (a0 -> a0))
    In the second argument of `(-)', namely `3'
    In the expression: abs - 3
    In an equation for `it': it = abs - 3

怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-03 15:28:59

哈斯克尔认为你试图从abs中减去3,并抱怨abs不是一个数字。在使用一元求反运算符时,需要添加括号:

代码语言:javascript
复制
abs (-3)
票数 14
EN

Stack Overflow用户

发布于 2011-06-03 15:30:53

解释器认为你指的是abs - 3而不是abs (-3)。您需要使用方括号来消除代码的歧义,并确保您打算使用一元"-“函数,而不是减法运算符。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6224212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档