制作一个三元逻辑表,我想为一个我称之为<=>
的操作员创建自己的函数。如何在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