gpt4 book ai didi

haskell - Haskell 中的局部中缀运算符定义

转载 作者:行者123 更新时间:2023-12-04 01:53:43 26 4
gpt4 key购买 nike

在这个 Haskell 程序中,@@是一个中缀运算符,我只想在函数体内本地定义 f . (当然,我的实际程序比这更复杂,使用中缀表示法是有充分理由的。)

infixl 5 @@

(@@) = undefined

f x = x @@ 5 where x @@ y = (x+1) * (y+1)

main = print (f 7)

但是,除非我也做了全局定义,这里写成 (@@) = undefined ,GHC 提示说“ @@ 的固定签名”缺少随附的绑定(bind)。如果没有运算符符号的全局定义,有没有办法解决这个问题?

最佳答案

只需将固定性声明放入 where子句似乎工作正常:

f x = x @@ 5 where
infixl 5 @@
x @@ y = (x+1) * (y+1)

关于haskell - Haskell 中的局部中缀运算符定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41489690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com