Книга: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ
X==Y
X==Y
Предикат '==' выполняет значительно более строгую проверку на равенство, чем предикат '='. Это значит, что если X==Y выполняется, то и тем более выполняется X=Y. А обратное заключение не всегда имеет место. Отличие '==' состоит в том, что он более строг к переменным. Предикат '=' предполагает, что не-конкретизированная переменная может быть равна чему угодно, так как она сопоставима с чем угодно. С другой стороны, предикат '==' предполагает, что неконкретизированная переменная может быть равна другой неконкретизированной переменной, лишь когда они уже сцеплены друг с другом. Иначе проверка на равенство заканчивается неудачей. Таким образом, возможен следующий диалог:
?- X==Y.
нет
?- X==X.
X=_23
?- X = Y, X == Y. X = _23, Y = _23
?- присоединить([А|В],С) == присоединить(Х,Y).
нет
?- присоединить ([А|В],С) == присоединить([А|В],С).
А = _23, В = _24, С = _25
- Листинг 8.2. Общий код, используемый во всех приведенных ниже вариантах тестов
- Что вы узнаете
- Пример 4-7. Использование команды shift
- Технологии
- Листинг 8.1. Применение отложенной загрузки, кэширования и освобождения графических ресурсов
- A7.6. Мультипликативные операторы
- 9.5. Инженерия разработки программного продукта
- Благодарности
- Lesson Summary
- CMYK
- 9.5. Полномочия
- 2. Управление каналами распределения и продаж