gpt4 book ai didi

haskell - Haskell 中的 xor 和 or 有什么区别

转载 作者:行者123 更新时间:2023-12-02 14:41:04 25 4
gpt4 key购买 nike

因此,如果 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

最佳答案

您可以将xor简单地写为

 xor a b = a /= b

也可以简化

 or True _ = True
or False b = b

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

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

很容易

 not a = nand a a

需要两个门

 and a b = not (nand a b)

,需要三个

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

并且,异或需要四个

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

关于haskell - Haskell 中的 xor 和 or 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com