CLIPS предоставляет богатый набор функций, предназначенных для работы с классами, объектами, слотами, обработчиками сообщений. Описание этих функций приведено в табл. 15.14.
Таблица 15.14. Объектно-ориентированные функции
| Функция
| Описание
|
| get-class-list
| Получение списка существующих классов
|
| defclass-module
| Поиск модуля, в котором определен класс
|
| class-existp
| Определяет, существует ли заданный класс
|
| superclassp
| Определяет, является ли первый класс суперклассом второго
|
| subclassp
| Определяет, является ли первый класс подклассом второго
|
| slot-existp
| Проверяет существование слота
|
| slot-writablep
| Проверяет, доступен ли слот записи
|
| slot-initablep
| Проверяет, доступен ли слот инициализации
|
| slot-publicp
| Проверяет, является ли слот видимым
|
| slot-direct-accessp
| Проверяет, возможно ли прямое обращение к слоту
|
| message-handler-existp
| Проверяет существование обработчика сообщения
|
| class-abstractp
| Проверяет, является ли класс абстрактным
|
| class-reactivep
| Проверяет, является ли класс активным
|
| class-superclasses
| Получение списка суперклассов
|
| сlass-subclasses
| Получение списка подклассов
|
| class-slots
| Получение списка слотов класса
|
| get-defmessage-handler-list
| Получение списка обработчиков сообщений класса
|
| slot-facets
| Получение списка значений граней слота
|
| slot-sources
| Получение списка источников определения слота
|
| slot-types
| Получение типа слота
|
| slot-cardinality
| Получение мощности составного слота
|
| slot-allowed-values
| Получение списка допустимых значений слота
|
| slot-range
| Получение допустимого диапазона значений слота
|
| slot-default-value
| Получение значения по умолчанию для слота
|
| next-handlerp
| Проверка существования скрытых обработчиков
|
| call-next-handler
| Вызов скрытого обработчика
|
| override-next-handier
| Вызов скрытого обработчика с измененными аргументами
|
| get-definstance-list
| Получение списка классов, созданных с помощью конструктора definstance
|
| definstances-module
| Получения модуля, в котором определен конструктор definstance
|
| init-slots
| Инициализация слотов
|
| unmake-instance
| Удаление объекта
|
| delete-instance
| Удаление объекта из обработчика сообщения
|
| class
| Определение класса заданного объекта
|
| instance-name
| Определение имени объекта
|
| instance-address
| Определение адреса объекта
|
| symbol-to-instance-name
| Преобразование значение типа symbol в instance-name
|
| instance-name-to-symbol
| Преобразование значение типа instance-name в symbol
|
| instancep
| Проверка существования объекта с заданным адресом или именем
|
| instance-addressp
| Проверка существования объекта с заданным адресом
|
| instance-namep
| Проверка существования объекта с заданным именем
|
| instance-existp
| Проверка существования объекта
|
| dynamic-put
| Чтение значения слота
|
| dynamic-get
| Запись значения слота
|
| slot-replase$
| Замена полей составных слотов
|
| slot-insert$
| Добавления полей составных слотов
|
| slot-delete$
| Удаление полей составных слотов
|
Функция get-defclass-list возвращает составную величину, содержащую имена всех определенных в системе классов, видимых в заданном модуле. Если параметр <имя-модуля> не задан, функция выведет список классов, определенных в текущем модуле. Вместо имени модуля допустимо использовать символ *. В этом случае возвращается список всех классов
Определение 15.71. Функция get-defclass-list
(get-defclass-list [<имя-модуля>])
Для определения модуля, в котором указан заданный класс, служит функция defclass-module.
Определение 15.72. Функция defclass-module
(defclass-module <имя-класса>)
CLIPS предоставляет несколько предикатных функций, предназначенных для анализа свойств заданного класса. Синтаксис этих классов приведен ниже.