Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Конструкции




Пример.

Функции

Под функцией в CLIPS понимается фрагмент исполняемого кода, с которым связано уникальное имя, возвращающий полезное значение или имеющее полезный побочный эффект (например, вывод информации на экран).

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

Хотя ИО CLIPS и не ориентирована на вычислительные операции, в ней предусмотрен ряд стандартных арифметических и математических функций:

· + сложение;

· – вычитание;

· * умножение;

· / деление;

· ** возведение в степень;

· Abs определение абсолютного значения;

· Sqrt вычисление квадратного корня;

· Mod взятие по модулю;

· Min нахождение минимума;

· Max нахождение максимума.

 

Вызовы функций в CLIPS имеют префиксную форму, т.е. аргументы функции могут стоять только после ее названия. Вызов функции начинается с открывающейся скобки, за которой следует имя функции, затем идут аргументы, каждый из которых отделен одним или несколькими пробелами. Аргументами функции могут быть данные простых типов, переменные или вызовы других функций. В конце вызова ставится закрывающаяся скобка.

 

(+ 3 4 5)

(* 5 6 0 2)

(+ 3 (* 8 9) 4)

(* 8 (+ 3 (* 2 3 4) 9) (* 3 4))

(** 3.5 6)

 

В CLIPS существует несколько видов описывающих конструкций: defmodule, defrule, deffacts, deftemplate, defglobal, deffunction, defclass, definstances, defmessage-handler и defgeneric.

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

Конструкция deffunction позволяет пользователю определять новые функции непосредственно в среде CLIPS. Функции, определенные таким образом, выглядят и работают подобно остальным функциям, однако выполняются не напрямую, а интерпретируются средой CLIPS.

Все конструкции (за исключением defglobaI) позволяют размещать комментарии сразу вслед за именем конструкции. Кроме того, комментарии могут вставляться в код CLIPS при помощи точки с запятой «;». Последовательность символов в строке, следующая за символом «;» до конца строки, игнорируется. Если «;» стоит первым символом в строке, то комментарием считается вся строка целиком.




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


Дата добавления: 2014-12-29; Просмотров: 426; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.