Книга: Программирование на языке Пролог для искусственного интеллекта

7.5. Средства управления

7.5. Средства управления

К настоящему моменту мы познакомились с большинством дополнительных средств управления, за исключением repeat (повторение). Здесь мы для полноты приводим список всех таких средств.

• отсечение, записывается как '!', предотвращает перебор, введено в гл. 5.

• fail — цель, которая всегда терпит неудачу.

• true — цель, которая всегда успешна.

• not( P) — вид отрицания, который всегда ведет себя в точном соответствии со следующим определением:

not( P) :- P, !, fail; true.

Некоторые проблемы, связанные с отсечением и not детально обсуждались в гл. 5.

• саll( P) активизирует цель P. Обращение к саll имеет успех, если имеет успех P.

• repeat — цель, которая всегда успешна. Ее особое свойство состоит в том, что она недетерминирована, поэтому всякий раз, как до нее доходит перебор, она порождает новую ветвь вычислений. Цель repeat ведет себя так, как если бы она была определена следующим образом:

repeat.
repeat :- repeat.

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

квадраты :-
 repeat,
 read( X),
 ( X = стоп, !;
   Y is X*X, write( Y), fail ).

Оглавление книги


Генерация: 2.468. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз