При организации цели часто используется сопоставление (:-) при этом необходимо учитывать следующие правила:
- идентичные структуры сопоставляются друг с другом;
- свободная переменная сопоставляется с константой или с ранее связанной переменной (и становится связанной с соответствующим значением);
- две свободные переменные могут сопоставляться (и связываться) друг с другом. С момента связывания они трактуются как одна переменная: если одна из них принимает какое-либо значение, то вторая немедленно принимает, то же значение.
Процесс, используемый Visual Prolog во время попытки сопоставления вызова (из подцели) с конкретным предложением (в разделе программыclauses) называется унификацией. Унификация — это процесс сопоставления двух предикатов и присваивания свободным переменным значений для того, чтобы сделать предикаты идентичными.
Этот механизм необходим, чтобы Visual Prolog мог определить, какое предложение вызвать и каким переменным присвоить значения. Представлены важные моменты, связанные с сопоставлением (унификацией):
- когда Пролог начинает попытки достичь цели, он начинает поиск с начала программы;
- когда вызов завершается успехом, говорят, что вызов возвратился, и делается попытка доказать следующую подцель;
- если переменная была связана в предложении, единственный способ сделать ее снова свободной — это откат (поиск с возвратом).