записывался так:
Х = Y
Это равенство верно, если Х и Y сопоставимы. Следующий вид равенства записывался в виде
Х is E
Такое равенство выполняется, если Х сопоставим со значением арифметического выражения E. Мы также рассматривали равенства вида
Е1 =:= Е2
которые верны, если равны значения арифметических выражений Е1 и Е2. Наоборот, если значения двух арифметических выражений не равны, мы пишем
Е1 =/=
Е2
Иногда нам может понадобиться более строгий вид равенства -
Т1 == Т2
Это равенство выполняется, если термы Т1 и Т2 идентичны, т. е. имеют в точности одинаковую структуру, причем все
соответствующие компоненты совпадают.
В частности, должны совпадать и имена переменных.
Отношение 'не идентичны'
, дополнительное к данному, записывается так:
Tl == T2
Приведем несколько примеров:
?- f( a, b) == f( а, b).
yes
?- f( a, b) == f( a, X).
nо
?- f( a, X) == f( a, Y).
no
?- X == Y.
yes
?- t( X, f( a, Y) ) == t( X, f( a, Y) ).
yes
Давайте в качестве примера переопределим отношение
счетчик( Терм, Список, N)
из разд. 7.1. Пусть на этот раз N будет числом буквальных вхождений Терм'а в Список:
счетчик( _, [ ], 0).
счетчик( Терм, [Голова | L], N) :-
Терм == Голова, !,
счетчик( Терм, L, N1),
N is N1 + 1;
счетчик( Терм, L, N).
Назад | Содержание | Вперёд
Назад | Содержание | Вперёд
7. 4. Работа с базой данных
Реляционная модель предполагает, что база данных - это описание некоторого множества отношений. Пролог-программу можно рассматривать