8.1. КОРРЕКТНОЕ РАЗРУШАЮЩЕЕ ПРИСВАИВАНИЕ

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

Для  изменения производных значений общих переменных некоторого процесса непосредственно в ходе доказательства актора P, принадлежащего этому процессу, используется (недетерминированный) встроенный предикат разрушающего присваивания

L := R.

Исполнение этого предиката осуществляется следующим образом:

  1. Аргументы предиката унифицируются друг с другом.
  2. После выполнения первого шага происходит согласование акторов процесса в соответствии с правилами, определёнными в разделе 7.3.

Доказательство предиката считается успешным в том и только в том случае, если завершаются успехом унификация его аргументов, а также последующее согласование акторов процесса.

Встроенный предикат разрушающего присваивания разрешается использовать с произвольным количеством аргументов:

':='(V1,...,Vk).

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

Пример. Использование предиката разрушающего присваивания.

Рассмотрим поведение доказанного актора, определённого с помощью фрагмента программы

class 'Main':
x;
[
goal:-
     subgoal(x).
subgoal(1).
subgoal(3).
subgoal(5).
]
В результате исполнения предиката x:=5, актор goal будет нейтрализован и доказан повторно, производное значение общей переменной x станет равным 5.

Ссылки: актор 7.1, встроенный предикат 8, доказанный актор 7.1, доказательство актора 6.3.1, исполнение предиката 6.3.1, нейтрализация актора 7.1, общие переменные 7.2, повторные доказательства 7.1, принадлежать процессу 5.2, программа 4, производные значения 7.2, процесс 5.2, согласование акторов 7.3, унификация 3.3, class 2.1.2, goal 5.4.1.


Следующий: 8.2. АКТУАЛИЗАЦИЯ ПРОИЗВОДНЫХ ЗНАЧЕНИЙ
Предыдущий: 8. ВСТРОЕННЫЕ ПРЕДИКАТЫ И ОПЕРАТОРЫ


8. ВСТРОЕННЫЕ ПРЕДИКАТЫ И ОПЕРАТОРЫ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)