Примітивні об’єкти даних
Функції розпізнання
Функції розпізнання — це твердження, які використовуються для розпізнання або ідентифікації об’єктів даних muLisp. Ці функції мають тільки один аргумент, а повертають булеве значення. Вони розпізнають об’єкт, який може мати довільну структуру. Ми вже розглянули деякі функції розпізнання: SYMBOLP, INTEGERP, NUMBERP, ATOM, LISTP, NULL. Розглянемо інші.
(ZEROP obj). Повертає Т, якщо obj — число 0.
(PLUSP obj). Повертає Т, якщо obj — додатне ціле число.
(MINUSP obj). Повертає Т, якщо obj — від’ємне ціле число.
(ODDP obj). Повертає Т, якщо obj — непарне ціле число.
(EVENP obj). Повертає Т, якщо obj — парне ціле число.Функція (ASCII sym) повертає ASCII-код символа sym. Функція (ASCII num) повертає символ, ASCII код якого дорівнює числу num. Для того, щоб визначити, чи є символ sym літерою, можна використати функцію: (< (ASCII ‘a) (ASCII sym) (ASCII ‘z)). Оскільки muLisp не розрізняє малі та великі літери, то (ASCII ‘s) = (ASCII ‘S) для будь-якого символа s. Функція ISCHAR розпізнає літери. Для знаходження ASCII кодів символів, які позначають цифри, необхідно використовувати одинарний Escape-символ.
$ (DEFUN ISCHAR (char)$ (ASCII ‘f)$ (ASCII 70)
(<= (ASCII ‘a) (ASCII char) (ASCII ‘z)) )70F
$ (ASCII ‘\9)$ (ASCII 57)
57\9
Наступні функції дають можливість розпізнавати символи та числа.
(ALPHA-CHAR-P obj) – повертає T, якщо obj – літера.
(NUMERIC-CHAR-P obj) – повертає T, якщо obj – цифра.
(ALPHANUMERICP obj) – повертає T, якщо obj – літера або цифра.
$ (ALPHA-CHAR-P W)$ (ALPHA-CHAR-P \3)$ (ALPHA-CHAR-P ~)
TNILNIL
$ (NUMERIC-CHAR-P W)$ (NUMERIC-CHAR-P \3)$ (NUMERIC-CHAR-P ~)
NILTNIL
$ (ALPHANUMERICP W)$ (ALPHANUMERICP \3)$ (ALPHANUMERICP ~)
TTNIL
Зазначимо, що символ проміжку (‘ ‘ ) є літерою.
Завдання