summaryrefslogtreecommitdiff
path: root/H46.hs
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2015-04-04 17:38:20 +0800
committerJoe Zhao <ztuowen@gmail.com>2015-04-04 17:38:20 +0800
commit13c0046a6dbd41b15358e76856922144ac76e768 (patch)
treedfee06a0f90b0b0b6048eafec7c46da253c79328 /H46.hs
parentb47befab3696c40c710ee80f366fa376ec967b30 (diff)
downloadh99-13c0046a6dbd41b15358e76856922144ac76e768.tar.gz
h99-13c0046a6dbd41b15358e76856922144ac76e768.tar.bz2
h99-13c0046a6dbd41b15358e76856922144ac76e768.zip
+46 +47 +48 +49 +50
Diffstat (limited to 'H46.hs')
-rw-r--r--H46.hs27
1 files changed, 27 insertions, 0 deletions
diff --git a/H46.hs b/H46.hs
new file mode 100644
index 0000000..41b56a2
--- /dev/null
+++ b/H46.hs
@@ -0,0 +1,27 @@
+and',or',nand',nor',xor',impl',equ' :: Bool -> Bool -> Bool
+not' :: Bool -> Bool
+
+not' True = False
+not' _ = True
+
+and' True True = True
+and' _ _ = False
+
+or' False False = False
+or' _ _ = True
+
+nand' = curry $ not' . (uncurry and')
+
+nor' = curry $ not' . (uncurry or')
+
+xor' True True = False
+xor' False False = False
+xor' _ _ = True
+
+impl' a b = or' (not' a) b
+
+equ' = curry $ not' . (uncurry xor')
+
+table :: (Bool -> Bool -> Bool) -> IO ()
+table f = mapM_ putStrLn [show a ++ " " ++ show b ++ " " ++ show (f a b)
+ | a <- [True, False], b <- [True, False]]