Введение   Главы  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24   Приложения  1  2  

A.2.5. Определение функций



A.2.5. Определение функций


В языке CLIPS функции конструируются примерно так же, как в языке LISP (см. главу 4). Существенное отличие состоит в том, что переменные должны иметь префикс ?, как это показано в приведенном ниже определении.

(deffunction hypotenuse (?a ?b)

(sqrt (+ ( ?a ?a) ( ?b ?b)) )

Формат определения функции в CLIPS следующий:

(deffunction <имя функции (<аргумент> ... <аргумент>) <выражение>

<выражение> )

Функция возвращает результат последнего выражения в списке. Иногда выполнение функции имеет побочные эффекты, как в приведенном ниже примере.

(deffunction init (?day)

(reset)

(assert (today is ?day)) )

В результате после запуска функции на выполнение командой CLIPS> (init Sunday)

будет выполнена команда reset и, следовательно, очищена база фактов, а затем в нее будет включен новый факт (today is Sunday).



- Начало - - Назад - - Вперед -