【发布时间】:2013-03-17 01:17:26
【问题描述】:
由于 ((NOT A) XOR B) 和 A→B ("iff....then") (~A→~B) 在逻辑上相同(例如,除非发生身份验证,否则无法登录)是否有任何实际使用还是只是逻辑重言式,程序员可以任意决定在哪里使用 XOR 以及在哪里使用 if...then?
一个示例重写是支付→交付(“iff payment() == 'complete' then delivery()”)重写为 ((NOT payment()) XOR delivery())
编辑:真值表
A:付款 B:发货
A B A' (A→B) (A' XOR B) (A' OR B) T T F T T T T F F F F F失败的地方
A B A' (A→B) (A' XOR B) (A' OR B) T F F F F FA 为假的情况只是一个假 B,以下所有内容仅表示 B 为假(因为 NOT A)。
A B A' (A→B) (A' XOR B) (A' OR B) F T T T F T F F T T T T或goal → score ^ ¬goal→¬score,这样就确定了,没有其他方法(如果你没有进球,你就不能得分)。
【问题讨论】:
-
我不确定它们是否相同,至少在命令式语言中不同......例如((NOT A) XOR B) 如何从两个不同的代码路径之一中进行选择?
-
我还没有假设一种语言(可能是 prolog 或其他基于规则来简化所做的事情)但是如果我们简单地思考
passwordmatch→login,我们可以像 XOR 一样编写该逻辑,即((NOT passwordmatch) XOR login)
标签: if-statement xor rule declarative paradigms