這一個是相當簡單的,但我還沒有找到一個令人滿意的答案在其他地方。 這是關於一個嚴格的操作符還是非嚴格的操作符,在這種情況下是一個簡單的OR操作符。非嚴格與嚴格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
除非我錯過了一些很大的東西,'or''似乎並不像一個OR,它具有AND的行爲。儘管嚴格和非嚴格OR的評估風格不同,但真值表語義(假設兩個參數都是有效的布爾值)應該是相同的。 –
是的,這也是我收集的,因此我說我的邏輯中有一些錯誤。 – dschib