Поскольку ((NOT A) XOR B) и A → B («iff .... then») (~ A → ~ B) логически одинаковы (например, логин не может произойти, если не выполняется аутентификация) имеет ли это какие-либо практические использовать или просто логическую тавтологию, и программист может произвольно решить, где использовать XOR и где использовать if ... then?Когда использовать XOR и когда использовать IFF?
Пример перезапись оплаты → доставки ("тогда и только тогда платеж() == 'полный', то доставка()") переписаны ((НЕ платеж()) доставка XOR)()
EDIT: таблица истинности
А: Б оплаты : доставка
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 F
И что случай, когда A является ложным, является просто ложным 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
так что есть детерминизм и нет другого пути (вы не можете выиграть, если вы не сделаете цель).
Я не уверен, что они такие же, по крайней мере, не на императивном языке ... например. как бы ((НЕ А) XOR B) выбрать один из двух разных путей кода? –
Я еще не предполагал какой-либо язык (может быть, пролог или другое правило, основанное на упрощении того, что сделано), но если мы просто подумаем, что 'passwordmatch → login', мы можем написать такую логику, как XOR, то есть' ((NOT passwordmatch) XOR login) ' –