Comment puis-je créer un opérateur en Haskell?

Faire un ternaires de la logique de la table, et je voudrais faire ma propre fonction pour un opérateur que je vais appeler <=>.

Ainsi, par exemple, je veux faire cela, mais ce n'est pas le bon. quelle est la manière correcte de le faire?

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
  • Tout comme une note de côté, M <=> M devrait être M plutôt que T. Mais cela dépend de votre "Peut-être" de la sémantique.
  • N'oubliez pas que vous pouvez définir arité et associativité des opérateurs en utilisant infixl, infixr...
InformationsquelleAutor user1189352 | 2012-02-20