Определение 11.24. Синтаксис функции message-modify-instance

(message-modify-instance <объект> <переопределения-слота>*)

Если остановка процесса сопоставления образцов нежелательна, можно применять функцию active-message-modify-instance, которая так же использует сообщение message-modify для изменения значений слотов объекта. Однако приостановка процесса сопоставления образцов при этом не происходит.

Определение 11.25. Синтаксис функции active-message-modify-instance

(active-message-modify-instance <объект> <переопределения-слота>*)

Дублирование объектов

Для дублирования объектов CLIPS предоставляет четыре функции: duplicate-instance, active-duplicate-instance, message-duplicate-instance и active-message-duplicate-instance. Они позволяют дублировать объекты и обновлять слоты объектов без вызова put-сообщений. Каждая из этих функций возвращает имя нового объекта в случае успеха и значение false — в случае неудачи.

Функции дублирования могут опционально определять имя объекта, в который будет скопирован старый объект. Если это имя не задано, функция сгенерирует имя, используя функцию (gensym*). Если заданный объект уже существует, он будет удален с или без использования сообщений в зависимости от того, какая функция была вызвана.

Функция duplicate-instance использует сообщение direct-duplicate для изменения значений слотов объекта. Сопоставление образцов приостанавливается до тех пор, пока копирование всех слотов не будет выполнено.

Определение 11.26. Синтаксис функции duplicate-instance

(duplicate-instance <объект> [to <объект>] <переопределения-слота>*)

Пример использования функции duplicate-instance приведен на рис. 11.30.

Если необходимо выполнить дублирование объекта без приостановки процесса сопоставления образцов, можно воспользоваться функцией active-duplicate-instance. Она также использует сообщение direct-duplicate для изменения значений слотов объекта, но не останавливает при этом процесс сопоставления образцов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: