当使用角度时,我想定义度符号(°
)作为后缀操作符。目前,我使用这一行(在GHCi中):
let o = pi/180
,并像这样使用:
tan(11*o)
但是我想直接写
tan 11°
更清晰。度运算符的优先级应该高于' tan
'和其他函数。
我得到的最接近的是:
let (°) x _ = x*pi/180
的用法如下:
tan(11°0)
,但是默认优先级意味着仍然需要父级,并且使用虚拟数字,这种替代方法比我目前使用的更糟糕。
不可以,至少在报告中定义的Haskell中是这样。但是,有一个GHC扩展允许后缀操作符。
不幸的是,这并没有给你想要的一切;特别是,它仍然需要括号,就像一元反运算符经常做的那样。
查看修复声明,它允许您更改中缀操作符的优先级。注意不要将优先级设置得太高,否则其他操作符的行为将不符合预期。
例如:infixl 7 °
(°) x _ = x*pi/180
编辑:啊,@Daniel Fischer是对的-这将不适合您当前的需求,因为函数应用程序具有最高的优先级