ГЛАВА 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 элементов:

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: