【发布时间】:2017-01-05 16:14:36
【问题描述】:
在这个 Haskell 程序中,@@ 是一个中缀运算符,我只想在函数 f 的主体内本地定义它。 (当然,我的实际程序比这更复杂,使用中缀表示法是有充分理由的。)
infixl 5 @@
(@@) = undefined
f x = x @@ 5 where x @@ y = (x+1) * (y+1)
main = print (f 7)
但是,除非我也进行全局定义,这里写为 (@@) = undefined,否则 GHC 会抱怨“@@ 的固定性签名缺少随附的绑定。”如果没有运算符符号的全局定义,有没有办法解决这个问题?
【问题讨论】:
-
你的
infixl 5 @@真的被应用到本地的(@@)了吗?因为那应该是我认为的错误 -
好像不是
标签: haskell