Определение запроса

Запрос — это определенное пользователем логическое выражение, приме­няемое к набору объектов для установления дополнительных ограничений для членов набора. Если значение логического выражения не равняется false, то считается, что набор объектов удовлетворяет запросу.

Определение 11.31. Синтаксис запроса

<запрос>::=(<логическое-выражение>)

Предположим, что необходимо найти пары противоположного пола одно­го возраста. Для этого следует использовать запрос, представленный в при­мере 11.50.

Пример 11.50. Запрос, накладывающий ограничение на возраст

(= (send?man-or-boy get-age) (send?woman-or-girl get-age))

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

Определение 11.32. Синтаксис обращения к переменным

<переменная-набора-объектов>:<имя-слота>

С учетом сказанного, предыдущий пример может быть переписан так, как представлено в примере 11.51.

Пример 11.51. Измененный запрос, накладывающий ограничение на возраст

(=?man-or-boy:age?woman-or-girl:age)

Определение действий

Некоторые функции позволяют пользователю определить действие, которое будет выполнено для каждого набора объектов. В отличие от запросов дей­ствия должны использовать сообщения для чтения значений слотов. В слу­чае если над объектом требуется выполнить несколько операций, использу­ется функция prong (см. гл. 15) для их группировки.

Определение 11.33. Синтаксис определения действия

<действие>::= <функция>

Обобщая приведенные выше примеры, в качестве иллюстрации использова­ния действий над набором объектов воспользуемся выражением из приме­ра 11.52.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: