Как и в случае с двойной связкой в психологии, есть ли способ сказать, что одно выражение подразумевает другое и наоборот?
valid_last_error: attached last_error implies not attached last_success_message
valid_last_success_message: attached last_success_message implies not attached last_error
было бы что-то вроде
valid_last_error: attached last_error double_binded_not attached last_success_message
что может быть эквивалентно
valid_last_error: attached last_error never_with attached last_success_message
a b R
T T T
T F F
F T T
F F T
a b R
T T T
T F F
F T F
F F F
a b R
T T T
T F T
F T T
F F F
a b R
T T F
T F T
F T T
F F F
a b R
T T F
T F T
F T T
F F T
в качестве возможно более поясняющего примера (более известного) вместо того, чтобы писать
invalid_index_implies_off: index < 1 implies off
off_implies_invalid_index: off implies index < 1
мы могли бы написать:
index_coherent_with_off: index < 1 never_both off
который просто добавит функцию в класс BOOLEAN, например
alias never_with, alias reversible_implies (v: like Current): like Current
do
if Current and v then
Result := False
else
Result := True
end
end
Надеюсь, теперь все поняли мою точку зрения ... Я не знаю, существует ли такой арифметический оператор.
Мы могли бы расширить его до переменное количество параметров
Единственный ответ на мой вопрос - определить функцию в классе утилиты, например
особенность - может быть в классе BOOLEAN
double_implies, reversible_implies, never_both (a, b: BOOLEAN): BOOLEAN
-- Into boolean class with never_with
do
if a and b then
Result := False
else
Result := True
end
end