Альтернатива выражению «перестановочности» в Прологе?

будучи новичком в Прологе, я обнаружил, что коммутативные выражения в Прологе совершенно не интуитивны.

например, если я хочу выразить 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).

. Вот в чем СУТЬ. это приводит к аннулированию! почему пролог не такой "логичный"? и есть ли альтернатива этому аккуратному однострочному выражению, которое не приводит к незавершенности?

Хороших выходных! ватт

8
задан m09 21 April 2012 в 10:12
поделиться