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



         

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


К настоящему моменту мы познакомились с большинством дополнительных средств управления, за исключением 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 ).

    Назад | Содержание

    | Вперёд




    Содержание  Назад  Вперед