Объявление глобальной переменной
В CLIPS глобальные переменные объявляются и получают своё начальное значение при помощи конструктора defglobal. Его синтаксис имеет следующий вид:
(defglobal <описание переменной>*)
В свою очередь, параметр <описание переменной> имеет вид:
Параметр <выражение> содержит значение переменной, либо выражение в круглых скобках, определяющее значение переменной. Параметр <глобальная переменная> содержит имя глобальной переменной в формате symbol:
<глобальная переменная>::=?*<symbol>*
Имя глобальной переменной всегда начинается с символов?* и заканчивается символом *. Так она указывается при объявлении. Также она указывается при обращении к ней. Это нужно, чтобы система не путала переменные с командами и выражениями. В одном конструкторе defglobal может быть объявлено несколько переменных одновременно. Рассмотрим пример:
Тип данных система определяет автоматически, исходя из значения, которое задано переменной, то есть, при объявлении переменной, указывать её тип не нужно. Для создания переменной, имеющей логическое значение TRUE или FALSE, достаточно просто объявить переменную, и присвоить ей необходимое значение. Формально, она будет считаться переменной типа symbol:
На рисунке 3.2 объявляется 2 глобальные переменные, которым задаются значения TRUE и FALSE соответственно. После этого, с помощью предикатной функции symbolp осуществляется проверка принадлежности каждой из переменных к символьному типу. Затем, переменные символьного типа, имеющие логические значения, используются в качестве аргументов логических функций and и not. Аналогичным образом можно использовать переменные числовых типов в качестве аргументов для математических функций и функций сравнения:
Рисунок 3.3 – применение глобальных переменных для выполнения математических операций
На рисунке 3.3 продемонстрировано объявление двух целочисленных и двух вещественных переменных. После этого осуществляется сравнение двух целочисленных переменных, деление одной целочисленной переменной на другую и на целое число 15, умножение вещественной переменной на 3, проверка равенства вещественной переменной и целого числа 200, и суммирование двух вещественных переменных. Значения переменных в памяти при этом не меняются, они сохраняют значения, которые были определены при объявлении в конструкторе defglobal. CLIPS просто выводит на экран результат выполнения функции.
CLIPS предоставляет несколько инструментов для работы с переменными. Первый – окно с глобальными. Его можно активировать, выбрав вкладку меню Window, а в ней команду Globals (MAIN):
Рисунок 3.4 – активация окна с глобальными переменными
Второй инструмент – Defglobal Manager. Позволяет удалять глобальные переменные. Чтобы запустить, во вкладке меню Browse выбрать команду DefglobalManager…:
Рисунок 3.5 – инструмент Defglobal Manager
Команда Remove удалит выделенную переменную из памяти, Print выведет информацию о переменной на экран, Done закроет окно Defglobal Manager.
|