Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример 12.2. Использование модулей
(clear) (defmodule A) (defmodule В) (defrule foo =>) (defrule A:: bar =>) (list-defrules) (set-current-module B) (list-defrules) Результат выполнения этих команд приведен на рис. 12.1. Обратите внимание, что после определения нового модуля он становится текущим (имя текущего модуля можно получить с помощью функции get-current-module). Таким образом, правило foo было добавлено в текущий модуль В, т. к. при его создании модуль не был указан явно, а правило bar добавлено в модуль А, что явно указано в конструкторе. Сообщения, возникшие после определения правил, сообщают об определении в новых модулях фактов initial-fact, необходимых для безусловных правил. После этого, переключая текущий активный модуль с помощью команды set-current-module и используя команду list-defrules, можно убедиться, что правила находятся именно в тех модулях, в которых они должны находиться. Windows-версия CLIPS предоставляет еще один способ просмотра списка определенных пользователем модулей и изменения текущего модуля. Эта возможность реализована с помощью вложенного меню Module, содержащегося в меню Browse. Текущий модуль в этом меню отмечен флажком (рис. 12.2).
Рис. 12.1. Использование модулей
Рис. 12.2. Выбор активного модуля
|