Пример 5.15. Использование кавычек внутри строки


(assert-string "(book-name V'CLIPS User Guide\")")

Для добавления содержащегося в поле символа обратной косой черты ис­пользуйте ее дважды. Если обратная косая должна содержаться внутри под­строки, ее необходимо использовать четыре раза. Например, для помещения в текущий список факта (a\b "c\d") необходимо вызвать функцию assert-string со следующим строковым аргументом:

Пример 5.16. Использование обратной косой черты

 

(assert-string "(a\\b \"c\\\\d\")")

Если добавления факта прошло удачно, функция возвращает индекс только что добавленного факта, в противном случае функция возвращает сообще­ние об ошибке и значение false. Функция assert-string не позволяет добавлять факт в случае, если такой факт уже присутствует в базе знаний (если вы еще не включили возможность присутствия одинаковых фактов).

5.2.8. Функция fact-existp

В этом разделе рассмотрим очень простую, но чрезвычайно важную функ­цию fact-existp. Эта функция определяет, присутствует ли в данный мо­мент факт, заданный индексом или переменной указателем, в базе знаний системы. В случае если факт присутствует в списке фактов, функция возвращает значение true, иначе — false.

Определение 5.10. Синтаксис команды fact-existp

( fact-existp <определение-факта>)

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

Пример 5.17. Использование функции fact-existp

 

(clear)

(assert-string "(a\\b \"c\\\\d\")")

(fact-existp 0)

(retract 0)

(fact-existp 0)

Замечание

He забудьте выполнить команду clear, чтобы добавленный факт имел нулевой индекс. После первого вызова функция fact-exist вернет значение true, а после удаления факта с индексом 0 — false.

Функции для работы с неупорядоченными фактами

Для работы с неупорядоченными фактами в CLIPS предусмотрен целый ряд специальных функций. К ним относятся: fact-relation, fact-slot-names и fact-slot-value. Рассмотрим эти функции по порядку.

Функция fact-relation позволяет получить связь (relation) существующего факта с шаблоном. Связь факта с шаблоном, определенным с помощью конструктора deftemplate или неявно созданным шаблоном, определяется по первому полю факта. Это поле всегда является простым полем и используется CLIPS в качестве имени шаблона, с которым связан факт. Таким об­разом, функция fact-relation просто возвращает первое поле факта, или значение false, если указанный факт не найден.



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


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

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

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

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