Чтение онлайн

на главную - закладки

Жанры

Неизвестно

Шрифт:

остветпольз( Цель, Трасса, Ответ) :-

можно_спросить( Цель), % Можно ли спрашивать

спросить( Цель, Трасса, Ответ).

% Задать вопрос относительно утверждения Цель

спросить( Цель, Трасса, Ответ) :-

показать( Цель),

%

Показать пользователю вопрос

принять(Ответ1), % Прочесть ответ

обработать( Ответ1, Цель, Трасса, Ответ).

% Обработать ответ

обработать( почему, Цель, Трасса, Ответ) :-

% Задан вопрос "почему"

показать_трассу( Трасса),

% Выдача ответа на вопрос "почему"

спросить( Цель, Трасса, Ответ).

% Еще раз спросить

обработать( да, Цель, Трасса, Ответ) :-

% Пользователь ответил, что Цель истинна

Ответ = правда,

запрос_перем( Цель);

% Вопрос о значении переменных

спросить( Цель, Трасса, Ответ).

% Потребовать от пользователя новых решений

обработать( нет, Цель, Трасса, ложь).

% Пользователь ответил, что Цель ложна

показать( Цель) :-

nl, write( 'Это правда:'),

write( Цель), write( ?), nl.

Обращение к процедуре запрос_перем( Цель) нужно для того, чтобы попросить пользователя указать значение каждой из переменных, содержащихся в утверждении Цель:

запрос_перем( Терм) :-

var( Терм), !, % Переменная ?

nl, write( Терм), write( '='),

read( Терм). % Считать значение переменной

запрос_перем( Терм) :-

Терм =.. [Функтор | Аргументы],

% Получить аргументы структуры

запрос_арг( Аргументы).

% Запросить значения переменных в аргументах

запрос_арг( [ ]).

запрос_арг( [Терм | Термы]) :-

запрос_перем( Терм),

запрос_арг( Термы).

Проведем несколько экспериментов с процедурой ответпольз. Пусть, например, известно, что пользователя можно спрашивать о наличии бинарного отношения ест:

можно_спросить( X ест Y).

(В приведенных ниже диалогах между пролог-системой и пользователем тексты пользователя даются полужирным шрифтом, а реплики пролог-системы курсивом).

?- ответпольз( питер ест мясо, [ ], Ответ).

Это правда: питер ест мясо? % Вопрос пользователю

да. % Ответ пользователя

Ответ = правда

Более интересный пример диалога (с использованием переменных) мог бы выглядеть примерно так:

?- ответпольз( Кто ест Что, [ ], Ответ).

Это правда: _17 ест _18?

% Пролог дает переменным свои внутренние имена

да.

_17 = питер.

_18 = мясо.

Ответ = правда.

Кто = питер

Что = мясо; % Возврат для получения других решений

Это правда: _17 ест _18?

да.

_17 = сьюзен.

_18 = бананы.

Поделиться:
Популярные книги

Путешествие. Дневник. Статьи

Кюхельбекер Вильгельм Карлович ""
243. Литературные памятники
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Путешествие. Дневник. Статьи

Собрание юмористических рассказов в одном томе

Чехов Антон Павлович
Проза:
русская классическая проза
5.00
рейтинг книги
Собрание юмористических рассказов в одном томе

Управленческая элита. Как мы ее отбираем и готовим

Тарасов Владимир
Деловая литература:
управление, подбор персонала
5.00
рейтинг книги
Управленческая элита. Как мы ее отбираем и готовим

Инквизитор. Омнибус. Пенталогия

Абнетт Дэн
6. Цикл книг про инквизиторов Эйзенхорна и Рейвенора
Фантастика:
боевая фантастика
5.00
рейтинг книги
Инквизитор. Омнибус. Пенталогия

Иллюстрированная библейская энциклопедия

Архимандрит Никифор
Религия и эзотерика:
религия
6.00
рейтинг книги
Иллюстрированная библейская энциклопедия

Толковая Библия. Ветхий Завет. Книги пророческие.

Лопухин Александр Павлович
Религия и эзотерика:
религия
5.00
рейтинг книги
Толковая Библия. Ветхий Завет. Книги пророческие.

Царь зверей не лев

Вагнер Йозеф
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Царь зверей не лев

Воронцов. Перезагрузка. Книга 2

Тарасов Ник
2. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Воронцов. Перезагрузка. Книга 2

Академия и Земля (Основание и Земля)

Азимов Айзек
7. Академия
Фантастика:
научная фантастика
8.00
рейтинг книги
Академия и Земля (Основание и Земля)

Выживальщики 15

Денисов Константин Владимирович
15. Выживальщики
Фантастика:
героическая фантастика
боевая фантастика
фэнтези
5.00
рейтинг книги
Выживальщики 15

Республика ШКИД (большой сборник)

Белых Григорий Георгиевич
Проза:
советская классическая проза
6.25
рейтинг книги
Республика ШКИД (большой сборник)

Перерождённые

Крапицкая Влада
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Перерождённые

Волонтеры Челкеля

Валентинов Андрей
1. Око силы
Приключения:
прочие приключения
7.27
рейтинг книги
Волонтеры Челкеля

"Фантастика 2024-154". Компиляция. Книги 1-18

Лик Анастасия Владимировна
Фантастика 2024. Компиляция
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Фантастика 2024-154. Компиляция. Книги 1-18