使用度数角度时,我想定义要用作后缀运算符的度数符号(°
)。目前,我使用这一行(在GHCi中):
let o = pi/180
并像这样使用它:
tan(11*o)
但我想去:
tan 11°
更清楚。度数运算符应优先于“tan
”和其他函数。
我最接近的是:
let (°) x _ = x*pi/180
像这样使用:
tan(11°0)
但是默认优先级意味着仍然需要parens,并且使用虚拟数字,这个替代方案比我目前使用的更差。
答案 0 :(得分:16)
你不能,至少在报告定义的Haskell中。但是,有a GHC extension that allows postfix operators。
不幸的是,这并没有给你想要的一切;特别是,它仍然需要括号,因为一元否定算子经常这样做。
答案 1 :(得分:4)
查看fixity declarations,它允许您更改中缀运算符的优先级。注意不要将优先级设置得太高,否则其他操作符将不会按预期运行。
例如:
infixl 7 °
(°) x _ = x*pi/180
编辑:啊,@丹尼尔费舍尔的权利 - 这不适用于您当前的需求,因为功能应用程序具有最高优先级