<分区>
在 GHCi 中,以下工作非常出色:
let (≠) = (/=)
但是尝试从源文件编译它会导致错误:
(≠) = (/=)
报错如下,供引用:
“由于使用‘/=’而产生的不明确类型变量‘a0’阻止了约束‘(Eq a0)’的求解。”
我做错了什么?
<分区>
在 GHCi 中,以下工作非常出色:
let (≠) = (/=)
但是尝试从源文件编译它会导致错误:
(≠) = (/=)
报错如下,供引用:
“由于使用‘/=’而产生的不明确类型变量‘a0’阻止了约束‘(Eq a0)’的求解。”
我做错了什么?
最佳答案
您需要添加类型签名,否则 Haskell 会尝试分配一个特定类型,但会因类型不明确而感到困惑。
(≠) :: Eq a => a -> a -> Bool
(≠) = (/=)
关于haskell - 为什么这个 Haskell 语句在 GHCi 中有效但无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53910628/