Учебник Пролога: Проблема изложена в виде правил

Прологовая программа состоит в основном из фактов и правил. Правила - это способ выразить то, что вы хотите сделать с фактами, которые мы зафиксировали.

Например, мы знаем, в каких городах живет список людей...

habite('Julia', 'New York').
habite('Tom', 'San Francisco').
habite('Naomi', 'New York').
habite('Harrison', 'San Francisco').

Джулия живет в Нью-Йорке, Том в Сан-Франциско и т. Д.

Один из способов использовать эти знания может найти, какие люди живут в одном городе. Для этого мы определяем правило.

voisin(X,Y) :- habite(X, Ville), habite(Y, Ville).

Это гласит:

  1. X и Y являются соседями, если
  2. X живет в таком городе
  3. Живёт там в таком городе
  4. де-факто переменная Город имеет одно и то же содержимое в обоих объявлениях

Это даст нам Джулию соседа Ноами, Тома соседа Харрисона. Но это даст нам и соседку Юлию, потому что пролог не предполагает от себя, что X и Y - два разных человека. поэтому необходимо добавить еще одно условие: переменные X и Y имеют разные значения.

voisin(X,Y) :- habite(X, Ville), habite(Y, Ville), X \= Y.

У нас будет следующий результат.

Julia voisin de Naomi 
Tom voisin de Harrison
Naomi voisin de Julia
Harrison voisin de Tom

Для просмотра этих результатов мы добавим небольшую программу. Программа - это правило, содержащее инструкции. Мы используем три инструкции из стандартной библиотеки:

Итак, вот программа:

program :-
write('Voisins...\n'),
forall(voisin(X,Y), format("~a voisin de ~a ~n", [X, Y])),
write('Fin').

Поскольку «program» - это правило, для его выполнения ты вводишь следующую строку в консоли prolog:

program.

Будет показано:

Voisins...
Julia voisin de Naomi 
Tom voisin de Harrison
Naomi voisin de Julia
Harrison voisin de Tom Fin

Также можно напрямую вызвать правило «сосед»:

voisin('Julia', 'Naomi').

который вернется «yes».

Зная сейчас, как констатировать факты и правила, у тебя есть все необходимое для решения сложных проблем благодаря Прологу...

  1. Язык Пролога.
  2. Учебник Пролога: Записывается набор фактов.
  3. Учебник Пролога: Проблема изложена в виде правил
  4. .
  5. Демо Пролог: Ищу квартиру
  6. .