Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data Logic = O | I | A | B | C | Not Logic | And Logic Logic | Or Logic Logic deriving (Eq, Show, Read)
- eval :: Logic -> Logic
- eval (Not O) = I
- eval (Not I) = O
- eval (Not (Not x)) = eval x
- eval (And O _) = O
- eval (And _ O) = O
- eval (And I x) = eval x
- eval (And x I) = eval x
- eval (And x y)
- | x == y = x
- | x == (Not y) = O
- | (Not x) == y = O
- | otherwise = (And (eval x) (eval y))
- eval (Or I _) = I
- eval (Or _ I) = I
- eval (Or O x) = eval x
- eval (Or x O) = eval x
- eval (Or x y)
- | x == y = x
- | x == (Not y) = I
- | (Not x) == y = I
- | otherwise = (Or (eval x) (eval y))
- eval x = x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement