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 предоставляет несколько предикатных функций, предназначенных для анализа свойств заданного класса. Синтаксис этих классов приведен ниже.