6.2. ПОДЦЕЛИ ПРЕДЛОЖЕНИЙ

Подцелями предложения служат вызовы предикатов.

"Вызовом предиката" называется синтаксическая конструкция, определяющая экземпляр класса, в котором этот вызов должен быть исполнен, тип вызова (ближний или дальний), а также атомарную формулу вызова. Различаются ближние и дальние, а также простые и акторные вызовы предикатов.

Вызов предиката называется "дальним", если в подцели явным образом (с помощью переменной или атрибута) указан мир, в котором он должен быть исполнен. Если соответствующий мир не указан, вызов предиката называется "ближним". Исполнение ближнего вызова осуществляется в том же самом мире, в котором исполняется рассматриваемое предложение.

Акторными вызовами предикатов называются подцели предложений, определяющие акторы. Если про вызов предиката не сказано, что он является акторным, такой вызов называется (является) простым.

 подцель =
    простая_подцель |
    бинарное_отношение |
    "[" [ термы_и_выражения ] "]" |
    "!"
 простая_подцель =
    [ [ целевой_параметр ] инфикс_подцели ] простой_атом
 инфикс_подцели = "?" | "<<" | "<-"

Если инфикс подцели равен "<<" или "<-", в качестве простого атома этой подцели не разрешается использовать метапеременные.

Подцель [V1,...,Vk] обозначает встроенный управляющий оператор copy(V1,...,Vk).  Подцель "!" обозначает встроенный управляющий оператор отсечения '!'.

Пример. Правильно построенные предложения:

clause_1(M,N,J):-
     M * 2 + N < 7 - ? f(J),       -- простой ближний вызов
     console ? write("N=",N).      -- простой дальний вызов
clause_2(K,1,N,L*):-
     check(K, slot ? p(N) ),       -- простой ближний вызов
     ? p(N,7,L).                   -- простой ближний вызов

Ссылки: актор 7.1, атом 6.1, атрибут 4.1.1, бинарное отношение 6.1.2, встроенный оператор 8, инфикс подцели 6.2, исполнение предиката 6.3.1, исполнение предложения 6.3.2, метапеременная 3, мир 5.1, отсечение 8, переменная 2.1.1, предложение 6, простой атом 6.1.1, термы и выражения 3.2.1, целевой параметр 4.1.3, copy 8.2.


Следующий: 6.2.1. ВЫЗОВЫ ФУНКЦИЙ
Предыдущий: 6.1.3. ОБЪЯВЛЕНИЯ ФУНКЦИЙ


6. ПРЕДЛОЖЕНИЯ КЛАССОВ
6.2.1. ВЫЗОВЫ ФУНКЦИЙ
6.2.2. ВЫРАЖЕНИЯ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)