这个相当简单,但我在其他任何地方都没有找到令人满意的答案。这是关于严格与非严格运算符的比较,在本例中为简单的 OR。
我是否正确理解,使用严格的运算符,您总是必须查看两个布尔值中的第二个,如下所示:
strict_or False True = True
strict_or True False = True
等等?
non_strict 运算符怎么样,这个运算符总是只查看第一个值,还是需要 2 个 True 值才能返回 True?
即or True False = True
与or True False = False
?
现在看起来,我的代码中仍然存在一些逻辑错误:
or' :: (Bool,Bool) -> Bool
or' (True, True) = True
or' (True, False) = False
or' (False, _) = False
strict_or :: (Bool, Bool) -> Bool
strict_or (True,True) = True
strict_or (False, True) = True
strict_or (False, False) = False
strict_or (True, False) = True