Предикат '==' выполняет значительно более строгую проверку на равенство, чем предикат '='. Это значит, что если X==Y выполняется, то и тем более выполняется X=Y . А обратное заключение не всегда имеет место. Отличие '==' состоит в том, что он более строг к переменным. Предикат '=' предполагает, что не-конкретизированная переменная может быть равна чему угодно, так как она сопоставима с чем угодно. С другой стороны, предикат '==' предполагает, что неконкретизированная переменная может быть равна другой неконкретизированной переменной, лишь когда они уже сцеплены друг с другом. Иначе проверка на равенство заканчивается неудачей. Таким образом, возможен следующий диалог:
?- X==Y.
нет
?- X==X.
X=_23
?- X = Y, X == Y. X = _23, Y = _23
?- присоединить([А|В],С) == присоединить(Х,Y).
нет
?- присоединить ([А|В],С) == присоединить([А|В],С).
А = _23, В = _24, С = _25
http://farvik.ucoz.com/ - лечение проводят высококвалифицированные московские врачи. Врачи нашей компании работают более 20 лет. |