Ternary.hs

Haskell

Public Domain

Ternary/conditional operator in Haskell (It's shorter than if/else/then)

Download (right click, save as, rename as appropriate)

Embed

1
2
3
4
5
6
7
8
module Ternary where
 data TernaryBranch a = a :? a
 instance Functor TernaryBranch where fmap f (x :? y) = f x :? f y
 infixr 0 ?:, ??, :?
 (?:), (??) :: Bool -> TernaryBranch a -> a
 True ?: (y :? _) = y
 False ?: (_ :? z) = z
 (??) = (?:)  -- Included as an alias so you can write slightly more legible code