fact -3 error:Cannot infer instance
fact 0 = 1
fact n = n * fact(n - 1)
Hugs> fact 3
6 :: Integer
(75 reductions, 140 cells)
Hugs> fact -3
ERROR - Cannot infer instance
*** Instance : Num (a -> a)
*** Expression : fact - 3
按照规约的方式 fact -3 =》 -3 * fact -4
=> -4 * -3 * fact -5
=> ....
如何能得出 Cannot infer instance 的结论?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回复 2# SNYH
谢谢
Hugs> fact (-3)
ERROR - C stack overflow
一直归约不成功,所以溢出了~
haskell 里面 '-' 号 一般要括起来。。。。应该写成 fact (-3)
否则就成了 (-) fact 3 了。。。
fact 是一个函数 减去 3 所以就 cannot infer instance 因为函数作用于 - 是未定义的