Что подразумевается под следующими двумя строками? - PullRequest
0 голосов
/ 05 января 2019
adjacent(X, Y) :- X =:= Y+1.
adjacent(X, Y) :- X =:= Y-1.

Что это значит? Я знаю, что означает оператор \=. Это похоже на это?

1 Ответ

0 голосов
/ 05 января 2019

Более сложные предикаты определяются как правила, такие как примеры, которые вы показали выше. Оператор =:= оценивает оба аргумента и сравнивает результат.

Таким образом, 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.

Источники:

  1. https://learnxinyminutes.com/docs/prolog/
  2. http://rigaux.org/language-study/syntax-across-languages-per-language/Prolog.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...