% Выдача заключения консультационного сеанса и

% объяснения типа 'как'

        выдать( Ответ) :-

                nl, заключение( Ответ),

                nl, write( 'Хотите узнать, как?'),

                принять( Ответ1),

                ( Ответ1 = да,  !,  отобр( Ответ);

                    true).                                                  % Показ решающего дерева

        заключение( Ответ1 и Ответ2) :-  !,

                заключение( Ответ1), write( 'и'),

                заключение( Ответ2).

        заключение( Заключение было Найдено) :-

                write( Заключение).

% 'отобр' отображает полное решающее дерево

        отобр( Решение) :-

                nl, отобр( Решение, 0),  !.                            % Отступ 0

        отобр( Ответ1 и Ответ2, Н) :-  !,                      % Отступ Н

                отобр( Ответ1, Н),

                tab( H), write( 'и'), nl,

                отобр( Ответ2, Н).

        отобр( Ответ был Найден, Н) :-                      % Отступ Н

                tab( H), печответ( Ответ),             % Показ заключения

                nl, tab( H),

                write( 'было'),

                отобр1( Найден, Н).                         % Показ доказательства

        отобр1( Выведено из Ответ, Н) :-  !,

                write( Выведено), write( 'из'),        % Показ имени правила

                nl, H1 is H + 4,

                отобр( Ответ, H1).                           % Показ 'предшественника'

        отобр1( Найдено, _ ) :-

                                    % Найдено = 'сказано' или 'найдено как факт'

                write( Найдено), nl.

        печответ( Цель это правда) :-  !,

                write( Цель).            % На выходе 'это правда' опускается

        печответ( Ответ) :-                                % Отрицательный ответ

                write( Ответ).

Рис. 14. 12.  Оболочка

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату