xor和/或Haskell之间有什么区别

时间:2016-04-15 20:07:30

标签: haskell xor

所以,如果xor返回True当且仅当其中一个操作数为True时才会返回xor :: Bool -> Bool -> Bool xor True True = False xor True False = True xor False True = True xor False False = False

or

我的问题是: True是否相似,但如果其中一个或两个操作数为True,则返回Operator:=xlFilterCellColor

1 个答案:

答案 0 :(得分:4)

您可以简单地将xor写为

 xor a b = a /= b

也可以简化or

 or True _ = True
 or False b = b

为了好玩,您可以用nand来定义所有逻辑函数。

 nand :: Bool -> Bool -> Bool
 nand True True = False
 nand _ _ = True

not很简单

 not a = nand a a

and需要两个门

 and a b = not (nand a b)

or,需要三个

 or a b = nand (not a) (not b)  

和,xor需要四个

 xor a b = let z = nand a b in nand (nand z a) (nand z b)