Процедурные функции
CLIPS предоставляет 9 функций, которые реализуют возможности процедурного программирования, присущие таким стандартным языкам программирования, как Basic, Pascal, С, Ada. Использование этих функций позволят создавать отрезки процедурного кода в правилах и функциях, созданных с помощью конструктора deffunction. Краткое описание этих функций приведено в табл. 15.12.
Таблица 15.12. Процедурные функции
Функция | Описание |
bind | Создание и связывание переменных |
if | Оператор ветвления |
while | Цикл с предусловием |
loop-for-count | Итеративный цикл |
progn | Объединение нескольких действий в рамках одной логической команды |
prong$ | Выполнение заданного набора действий над каждым элементом составного поля |
return | Прерывание функции, цикла, правила, обработчика сообщения и т. д. |
break | Прерывание текущей работы циклов, функций progn и progn$ и некоторых функций, выполняющих действия над набором объектов без возвращения параметров |
switch | Оператор множественного ветвления |
Если необходимо создание переменной или изменение значения уже существующей переменной, например в правой части правила, используется функцияbind.
Определение 15.53. Функция bind
(bind <имя-переменной> <выражение>*)
Первый аргумент функции bind — <имя-переменной> — является именем глобальной или локальной переменной, созданной в правиле или функции. Переменная, определенная первым аргументом, будет связана со значением переданного функции выражения. Если заданная переменная еще не определена, она будет создана и связана с соответствующим значением. Помимо пользовательских функций и правил, функцию bind можно использовать в обработчиках сообщений для установки новых значений слотов объекта.
Если параметр <выражение> не определен, то выполнение функции bind не оказывает на локальные переменные никакого влияния, а глобальные переменные получают при этом значения по умолчанию. В случае если пользователь задал выражение, то его значение вычисляется и присваивается соответствующей переменной. Если задано несколько выражений, из их значений формируется составное поле, которое потом и будет связано с указанной переменной.
Функция bind возвращает значение false при неудачном исходе операции. Во всех остальных случаях функция возвращает присвоенное переменной значение. Ниже приведено несколько примеров использования функции bind (см. также рис. 15.17 и 15.18).
Дата добавления: 2021-12-14; просмотров: 308;