Определение 7.2. Синтаксис функции bind


(bind <имя-переменной> <выражение>*)

 

Рис. 7.4.Установка режима просмотра изменения глобальных переменных

 

Рис. 7.5.Режим просмотра изменения глобальных переменных

Параметр выражения является необязательным. Если он не задан, то пере­менной будет установлено начальное значение, заданное в конструкторе defglobal. В случае если выражение было задано, то его значение будет вы­числено и результат присвоен переменной. Если было задано несколько вы­ражений, все они будут вычислены, из их результатов будет составлено со­ставное поле, которое будет присвоено глобальной переменной.

Функция bind возвращает значение false в случае, если переменной по какой-то причине не было присвоено никакого значения. В противном случае функция возвращает значение, присвоенное переменной.

 

Поскольку переменные в CLIPS слабо типизированы, типы значений, при­сваиваемые одной и той же переменной, в разные моменты времени могут не совпадать.

В качестве примера попробуйте присвоить переменной х следующие значе­ния: (+ 5 10),

(create$ abcd), три отдельных выражения (с), (b) и (а), а так же не присваивать переменной вообще никакого выражения. Результаты описанных действий приведены на рис. 7.6.

 

Рис. 7.6.Изменение типа глобальной переменной

Обратите внимание на то, что глобальная переменная х в нашем примере постоянно меняла тип своего значения.


ГЛАВА 8. Функции

Как уже отмечалось, CLIPS поддерживает не только эвристическую парадигму представления знаний (в виде правил), но и процедурную парадигму, используемую в большинстве языков программирования, таких, например, как Pascal или С. Функции в CLIPS являются последовательностью дейст­вий с заданным именем, возвращающей некоторое значение или выпол­няющей различные полезные действия (например, вывод информации на экран). Как уже упоминалось в гл. 4, в CLIPS существуют внутренние и внешние функции. Внутренние функции реализованы средой CLIPS, по­этому их можно использовать в любой момент. Описание внутренних функ­ций приведено в гл. 15. Внешние функции — это функции, написанные пользователем. Внешние функции можно создавать как с помощью среды CLIPS, так и на любых других языках программирования, а затем подклю­чать готовые, откомпилированные исполнимые модули к CLIPS. Однако эта тема выходит за рамки данной книги. Подробную информацию о соз­дании внешних функций можно найти в книге "CLIPS Reference Manual, Volume II, Advanced Programming Guide". Для создания новых функций в CLIPS используется конструктор deffunction, описанный далее в этой главе.

8.1. Конструктор deffunction и способы работы с внешними функциями

Конструктор deffunction позволяет пользователю создавать новые функции непосредственно в среде CLIPS. Способ вызова функций, определенных пользователем, эквивалентен способу вызова внутренних функций CLIPS. Вызов функции осуществляется по имени, заданному пользователю. За именем функции следует список необходимых аргументов, отделенный од­ним или большим числом пробелов. Вызов функции вместе со списком аргументов должен заключаться в скобки. Последовательность действий оп­ределенной с помощью конструктора deffunction функции исполняется ин­терпретатором CLIPS (в отличие от функций, созданных на других языках программирования, которые должны иметь уже готовый исполнимый код).

Синтаксис конструктора deffunction включает в себя 5 элементов:

Ø имя функции;

Ø необязательные комментарии;

Ø список из нуля или более параметров;

Ø необязательный символ групповых параметров для указания того, что функция может иметь переменное число аргументов;

Ø последовательность действий или выражений, которые будут выполнены (вычислены) по порядку в момент вызова функции.



Дата добавления: 2021-12-14; просмотров: 263;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.