haskell - 为什么这个 Haskell 语句在 GHCi 中有效但无法编译?

标签 haskell unicode

<分区>

在 GHCi 中,以下工作非常出色:

let (≠) = (/=)

但是尝试从源文件编译它会导致错误:

(≠) = (/=)

报错如下,供引用:

“由于使用‘/=’而产生的不明确类型变量‘a0’阻止了约束‘(Eq a0)’的求解。”

我做错了什么?

最佳答案

您需要添加类型签名,否则 Haskell 会尝试分配一个特定类型,但会因类型不明确而感到困惑。

(≠) :: Eq a => a -> a -> Bool
(≠) = (/=)

关于haskell - 为什么这个 Haskell 语句在 GHCi 中有效但无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53910628/

相关文章:

Qt 的 QDir : File Names Dropping Non-Ascii Characters

python - 将unicode插入sqlite?

haskell - 使用镜头两次

python - Unicode解码错误: 'utf8' codec can't decode byte 0xb4 in position 98: invalid start byte

android - 在 Android Chrome 中禁用 unicode 替换表情符号?

c++ - C/C++/Haskell AMQP 服务器库

php 查找表情符号 [更新现有代码]

haskell - 在 Haskell 函数中返回类的实例

haskell - 跟踪 ghci 中的主要功能

haskell - Control.Lens.Setter将类型包装在仿函数中是否不是多余的?