Guest User

Untitled

a guest
Oct 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. module Main where
  2.  
  3. nand :: Bool -> Bool -> Bool
  4. nand True True = False
  5. nand _ _ = True
  6.  
  7. not :: Bool -> Bool
  8. not x = Main.nand x x
  9.  
  10. and :: Bool -> Bool -> Bool
  11. and x y = Main.not $ Main.nand x y
  12.  
  13. or :: Bool -> Bool -> Bool
  14. or x y = Main.nand (Main.not x) (Main.not y)
  15.  
  16. nor :: Bool -> Bool -> Bool
  17. nor x y = Main.not $ Main.or x y
  18.  
  19. xor :: Bool -> Bool -> Bool
  20. xor x y = Main.or (Main.and x $ Main.not y) (Main.and y $ Main.not x)
  21.  
  22. add [Bool] -> [Bool] -> [Bool]
  23. add [] x = x
  24. add x [] = x
  25. add x [False] = x
  26. add [False] x = x
  27. add [True] [True] = [True, False]
  28.  
  29. main = do
  30. print $ Main.nor True True
  31. print $ Main.nor False True
  32. print $ Main.nor True False
  33. print $ Main.nor False False
Add Comment
Please, Sign In to add comment