製作一個三元邏輯表,我想爲一個我稱之爲<=>
的操作員創建自己的函數。如何在Haskell中創建運算符?
例如,我想這樣做,但那是不對的。什麼是正確的方法來做到這一點?
data Ternary = T | F | M
deriving (Eq, Show, Ord)
<=> :: Ternary -> Ternary -> Ternary
<=> T F = F
<=> T T = T
<=> T M = M
<=> F F = T
<=> F T = F
<=> F M = M
<=> M F = M
<=> M T = M
<=> M M = T
就像一邊n 'M <=> M'應該是'M'而不是'T'。但這取決於你的「Maybe」語義。 – bitmask 2012-02-20 06:06:06
不要忘記,你可以通過使用'infixl','infixr'來設置arity和associativity ... – Landei 2012-02-20 08:31:28