Назад | Содержание
| Вперёд
7. 5. Средства управления
К настоящему моменту мы познакомились с
большинством дополнительных средств управления,
за исключением repeat (повторение). Здесь
мы для полноты приводим список всех таких
средств.
- отсечение, записывается как '!',
предотвращает перебор, введено в гл. 5.
- fail - цель, которая всегда терпит
неудачу.
- true - цель, которая всегда успешна.
- not( P) - вид отрицания, который всегда
ведет себя в точном соответствии со следующим
определением:
not( P) :- P, !, fail;
true.
Некоторые проблемы, связанные с отсечением и not
детально обсуждались в гл. 5.
- саll( P) активизирует цель Р.
Обращение к саll имеет успех,
если имеет успех Р.
- repeat - цель, которая всегда
успешна. Ее особое свойство состоит в том, что она
недетерминирована, поэтому всякий раз, как до нее
доходит перебор, она порождает новую ветвь
вычислений. Цель repeat ведет себя так, как
если бы она была определена следующим образом:
repeat.
repeat :- repeat.
Стандартный способ применения repeat
показан в процедуре квадраты, которая
читает последовательность чисел и выдает их
квадраты. Последовательность чисел
заканчивается атомом стоп, который
служит для процедуры сигналом окончания работы.
квадраты :-
repeat,
read( X),
( X = стоп, !;
Y is X*X, write( Y), fail ).
Назад | Содержание
| Вперёд