______________________________________________________________________________________________
any-instancep Определяет, удовлетворяет ли запросу один или более наборов объектов
find-instance Возвращает первый объект из набора удовлетворяющему
запросу
find-all-instance Группирует и возвращает все наборы объектов,
удовлетворяющих запросу
do-for-instance Выполняет действия для первого набора объектов,
удовлетворяющих запросу
do-fo-all-instance Выполняет действия для каждого набора объектов,
удовлетворяющих запросу
delayed-do-for-all-instance Группирует все наборы объектов, удовлетворяющие запросу, и выполняет действия над этой группой
____________________________________________________________________________________
Функция запроса набора объектов может быть вызвана в произвольном месте, где вызывается обычная функция CLIPS. Если при выполнении любой из этих функций происходит ошибка, функция тут же прерывается и возвращает значение false.
Пользователь имеет возможность прерывать выполнение некоторых из указанных функций и возвращать при этом какой-то результат. Для этого служат функции break и return, которые можно использовать внутри функций do-for-instance, do-for-all-instance и delayed-do-for-all-instances. Функция break фактически прерывает выполнение запроса, а функция return помогает вернуть некоторое значение.
|
|
Функция any-instancep выполняет проверку удовлетворения запроса каким-либо набором объектов. Она применяет запрос к каждому набору объектов, который соответствует шаблону. Если набор объектов удовлетворяет запросу, то функция немедленно прекращается и возвращает значение TRUE. В противном случае — FALSE.
Определение 11.34. Синтаксис функции any-instancep
(any-instancep <шаблон-набора-объектов> <запрос>)
Например, вызов функции any-instancep из примера 11.53 определяет, существует ли в системе объект класса man с возрастом больше 30 лет. С нашими данными функция вернет значение TRUE.
Пример 11.53. Использование функции any-instancep
(any-instancep ((?man MAN)) (>?man:age 30))
Функция find-instance находит набор объектов, удовлетворяющий заданному запросу. Эта функция применяет запрос к каждому набору объектов, соответствующему шаблону. Если набор объектов удовлетворяет запросу, то работа функции немедленно прекращается, и она возвращает набор объектов в виде составного значения. Каждое поле составного значения является именем объекта из набора объектов. В случае если нужный набор не найден, функция возвращает составное значение нулевой длины.