Скачиваний:
14
Добавлен:
01.05.2014
Размер:
3.81 Кб
Скачать
! Данный оператор получил название отсечения. Отсечение
является целевым утверждением, согласование которого всегда
завершается успехом. Однако, если оператор отсечения
встречается при возвратном ходе ( процесс, получивший
название бэктрекинг), то согласование предиката, который
содержит оператор отсечения, завершается неудачей. Отметим,
что неудачей в этом случае завершится согласование всего
предиката, а не только предложения, которое содержит
оператор отсечения.

[!P!] Данный оператор получил название "слабого" отсечения в
отличие от предыдущего оператора отсечения "!", который
можно рассматривать как жесткое отсечение. Слабое отсечение
аналогично жесткому за тем лишь исключением, что когда
оператор слабого отсечения встречается при возвратном ходе,
то из дальнейшего рассмотрения исключаются только цель или
цели, которые находятся между знаками " ! ".
call(+P)
Данный предикат получил название вызова цели. Терм
Р интерпретируется как целевое утверждение. Если
согласование этого утверждения с базой завершается успешно,
то успехом завершается и согласование call(P). Если же
согласование Р заканчивается неудачей, то неудачей
завершается и согласование call(P).
repeat Согласование этого целевого утверждения всегда
завершается успехом. Когда данный предикат встречается при
бэктрекинге его согласование завершается успехом повторно.

ifthen(+P,+Q)
Эта управляющая конструкция предназначена для организации
в программе ветвления.Если согласование целевого утверждения
Р завершается успехом, то выполняется терм Q. В случае
неудачи при согласовании цели Р терм Q не выполняется, но
согласование цели ifthen завешается успехом.

ifthenelse(+P,+Q,+R)
Эта конструкция, как и предыдущая также предназначена для
организации ветвления.Если согласование целевого утверждения
Р завершается успехом, то выполняется терм Q . В случае
неудачи при согласовании цели Q выполняется терм R.
case(+[A1->B1,A2->B2,...|C])
case(+[A1->B1,A2->B2,...])
Конструкция case позволяет выбрать из списка альтернативных
вариантов исполнения программы один вариант. Например, если
согласование цели А1 завершается успехом, то выполняется
терм В1. Конструкция case первого типа предусматривает
обработку ситуации, когда согласование не одной цели
успехом не завершается. В данном случае, по умолчанию,
выполняется терм С. При использовании конструкции case
второго типа в данном случае согласование всей конструкции
case завершается успехом.

abort Этот управляющий предикат эмулирует нажатие на
клавиатуре комбинации клавиш ctr-C и вызывает прекращение
работы программы. Когда предикат abort встречается в
программе, он вызывает предикат restart. Если предикат
restart отсутствует и программа выполняется интерпретатором,
управление возвращается интерпретатору. Если выполняется
откомпилированная программа и предикат restart также
отсутствует, то происходит прекращение работы программы.

break Этот управляющий предикат используется для приостановки
работы программы и повторного вызова интерпретатора.
Выполнение программы возобновится, когда пользователь в
ответ на приглашение интерпретатора нажмет Ctrl-z.