(<имя-предикатной-функции> <выражение>)
При выполнении предикатной функции вычисляется выражение, переданное ей в качестве единственного параметра, и проверяется соответствие параметра некоторому типу. Если принадлежность к проверяемому типу подтверждается, функция возвращает значение true, в противном случае — false. Полный список предикатных функций приведен в табл. 15.1.
Таблица 15.1. Предикатные функции
Функция | Описание |
numberp | Проверка, относится ли аргумент к типу float или integer |
floatp | Проверка, относится ли аргумент к типу float |
integerp | Проверка, относится ли аргумент к типу integer |
lexemep | Проверка, относится ли аргумент к типу symbol или string |
stringp | Проверка, относится ли аргумент к типу string |
symbolp | Проверка, относится ли аргумент к типу symbol |
wordp | Синоним функции symbolp |
evenp | Проверка целого числа на четность |
oddp | Проверка целого числа на нечетность |
multifieldp | Проверка, является ли аргумент составным полем |
sequencep | Синоним функции multifieldp |
pointerp | Проверка, относится ли аргумент к типу external-address |
Другими полезными логическими функциями являются eq и neq, синтаксис которых приведен ниже.
|
|
Определение 15.2. Функции eq и neq
(eq <выражение1> <выражение2>+)
(neq <выражение1> <выражение2>+)
Функция eq возвращает значение true, если ее первый аргумент равен второму и всем последующим аргументам (если они присутствуют). В противном случае функция возвращает значение false. Важной особенностью функции является то, что она сравнивает как значения аргументов, так и их типы. Например, результатом выполнения выражения (eq 3 3.О) будет значение false, т. к. число 3 принадлежит типу integer, а число 3.0 — типу float.
Функция neq, напротив, возвращает значение true, если ее первый аргумент не равен второму и последующим аргументам, и значение false — в противном случае. В примере 15.1 показано использование функций eq и neq.