使用角度度數時,我想定義度量符號(°
)作爲後綴運算符。目前,我用這條線(在GHCI):如何在Haskell中定義一個後綴運算符?
let o = pi/180
,並使用它像這樣:
tan(11*o)
但我想只是去:
tan 11°
這是更清晰。學位經營者的優先級應高於'tan
'等職能。
我得到的最接近是:
let (°) x _ = x*pi/180
像這樣使用:
tan(11°0)
但是默認的優先級是指括號仍然需要,並與虛擬號碼,這種替代是比我目前使用的還差。
「程度運算符應該比'tan'和其他函數具有更高的優先級。」 < - 這不起作用,函數應用程序具有語言規範的最高優先級。 – 2013-04-24 15:42:27
爲什麼不簡單定義一個新的數字類型(包裝Double或其他)與代表度數的新類型?當然,如果你想定義平等等,你必須注意程度的「模塊化」性質。 – 2013-04-24 16:50:57
Haskell不是那種能夠編寫你習慣寫作的方式的任何語言的語言它。與Perl甚至Python不同的是,Haskell的中綴語法實際上非常簡潔,它恰好設計得非常好,即使這個簡單的基礎也允許使用很多非常有效的shorthands,忽略很多parens,並且通常使事情變得可讀。但後一點是部分原因在於存在這些嚴格的解析規則。 – leftaroundabout 2013-04-24 18:54:14