Более сложные предикаты определяются как правила, такие как примеры, которые вы показали выше. Оператор =:=
оценивает оба аргумента и сравнивает результат.
Таким образом, adjacent(X, Y) :- X =:= Y+1
утверждает, что adjacent(X, Y)
истинно, если X равен Y + 1, и ложно, если это не так.
Поскольку существует также правило adjacent(X, Y) :- X =:= Y-1
, X также может быть равен Y - 1, чтобы правила были истинными.
Таким образом, чтобы правила были истинными, X должно равняться Y + 1 или Y - 1.
Источники:
- https://learnxinyminutes.com/docs/prolog/
- http://rigaux.org/language-study/syntax-across-languages-per-language/Prolog.html