如果我定义以下功能:
(:==) :: a -> b -> (a,b)
x :== y = (x,y)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Op.hs:2:1: error:
Invalid type signature: (:==) :: ...
Should be of form <variable> :: <type>
|
2 | (:==) :: a -> b -> (a,b)
| ^^^^^
Run Code Online (Sandbox Code Playgroud)
有谁能解释为什么?
M. *_*osi 12
(:==)不是Haskell中函数或变量标识符的有效符号.以#开头的符号:是为构造函数保留的(data MyData a b = a :== b是一种有效的替代方法).
为您的函数选择一个不同的名称,或者使用(,)哪个是完全有效的函数来执行您的函数所做的事情,或者使用类似于上面括号中的数据类型的函数.
资料来源:Haskell 98报告 - 词汇结构 - 第2.4节
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |