будучи новичком в Прологе, я обнаружил, что коммутативные выражения в Прологе совершенно не интуитивны.
например, если я хочу выразить X и Y в одном семействе, как:
family(X,Y) :-
married(X,Y);
relative(X,Y);
father_son(X,Y).
я должен также добавить следующее к определению, чтобы сделать его «коммутативным»:
married(Y,X);
relative(Y,X);
father_son(Y,X).
Но мы используем Пролог, потому что мы хочу написать элегантный код... поэтому я надеюсь добавить только одну строку(вместо трех вышеприведенных)к исходному :
family(Y,X).
. Вот в чем СУТЬ. это приводит к аннулированию! почему пролог не такой "логичный"? и есть ли альтернатива этому аккуратному однострочному выражению, которое не приводит к незавершенности?
Хороших выходных! ватт