logo
TurboProlog / Документация / TOM_1

Использование знака равенства для унификации составных объектов.

Турбо Пролог осуществляет унификацию в двух случаях. Первое - при

вызове цель сопоставляется с заголовком предложений. Второе - через знак

равенства, который является инфиксным предикатом (предикатом, который

расположен между своими аргументами, а не перед ними).

Турбо Пролог делает необходимым присваивание для унификации объектов

по разные стороны знака равенства. Это свойство полезно для нахождения

значений аргументов составного объекта. Например, следующая программа

проверяет совпадают ли фамилии у двух людей, и затем дает второму челове-

ку тот же адрес, что и у первого.

/* Программа CH06EX01.PRO */

domains

человек =человек(фио,адрес)

имя =фио(имя,фамилия)

адрес =адрес(улица,город,штат)

улица =(номер,название)

город,страна,название =string

имя,фамилия =string

номер =string

goal

P1 = человек(фио(джим,мос),адрес(улица(5,"Восточная"),igo,

"Калифорния")),

P2 = человек(имя(_,мос),Адрес),

P2 = человек(имя(жанна,мос),Адрес),write(P2).