число 30.

Рис. 16. 4.  Программа, управляемая образцами, для получения

наибольшего общего делителя множества чисел.

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

        assert ( Объект)                                                     retract( Объект)

Заменить один объект на другой также просто:

        заменить( Объект1, Объект2) :-

                retract( Объект1),  !,

                assert( Объект2).

Здесь задача оператора отсечения - не допустить, чтобы оператор retract удалил из базы данных более чем один объект (при возвратах).

% Простой интерпретатор для программ, управляемых образцами

% Работа с базой данных производится при помощи процедур

% assert и retract

        :- ор( 800, xfx, --->).

        пуск :-

                Условие ---> Действие,                                 % правило

                проверить( Условие),                                     % Условие выполнено?

                выполнить( Действие).

        проверить( [ ]).                                                        % Пустое условие

        проверить( [Усл | Остальные]) :-                         % проверить конъюнкцию

                call( Усл),                                                          % условий

                проверить( Остальные).

        выполнить( [ стоп] ) :-   !.                                       % Прекратить выполнение

        выполнить( [ ]) :-                                             % Пустое действие (цикл завершен)

                пуск.                                                          % Перейти к следующему циклу

        выполнить [Д | Остальные] ) :-

                саll( Д),

                выполнить( Остальные).

        заменить( А, В) :-                                             % Заменить в базе данных А на В

                retract( A),  !,

                assert( В).

Рис. 16. 5.  Простой интерпретатор для программ, управляемых образцами.

Простой интерпретатор для программ, управляемых образцами, показан на рис. 16.5. Следует признать, что в интерпретаторе допущены

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

0

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

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