В LISP символы представлены как объекты данных типа символов.
Вы можете обозначить символьный объект, предшествующий # \ перед самим символом. Например, # \ a означает символ a.
Пробел и другие специальные символы могут быть обозначены предшествующим # \ перед именем символа. Например, # \ SPACE представляет символ пробела.
Следующий пример демонстрирует это —
пример
Создайте новый файл исходного кода с именем main.lisp и введите в него следующий код.
(write 'a) (terpri) (write #\a) (terpri) (write-char #\a) (terpri) (write-char 'a)
Когда вы выполняете код, он возвращает следующий результат —
A #\a a *** - WRITE-CHAR: argument A is not a character
Специальные символы
Common LISP позволяет использовать следующие специальные символы в вашем коде. Их называют полустандартными персонажами.
- # \ Backspace
- # \ Tab
- # \ Linefeed
- # \ Page
- #\Вернуть
- # \ Rubout
Функции сравнения символов
Функции и операторы числового сравнения, такие как <и>, не работают с символами. Common LISP предоставляет два других набора функций для сравнения символов в вашем коде.
Один набор чувствителен к регистру, а другой — без учета регистра.
В следующей таблице представлены функции —
Чувствительные к регистру функции | Функции без учета регистра | Описание |
---|---|---|
символ = | углеродно равно | Проверяет, равны ли все значения операндов или нет, если да, тогда условие становится истинным. |
символ / = | углеродно не равно | Проверяет, все ли значения операндов различны или нет, если значения не равны, условие становится истинным. |
символ < | углеродно lessp | Проверяет, монотонно ли уменьшаются значения операндов. |
символ> | углеродно greaterp | Проверяет, монотонно ли увеличиваются значения операндов. |
символ <= | углеродно не-greaterp | Проверяет, является ли значение любого левого операнда больше или равно значению следующего правого операнда, если да, тогда условие становится истинным. |
символ> = | углеродно не-lessp | Проверяет, является ли значение любого левого операнда меньше или равно значению его правого операнда, если да, тогда условие становится истинным. |
пример
Создайте новый файл исходного кода с именем main.lisp и введите в него следующий код.
; case-sensitive comparison (write (char= #\a #\b)) (terpri) (write (char= #\a #\a)) (terpri) (write (char= #\a #\A)) (terpri) ;case-insensitive comparision (write (char-equal #\a #\A)) (terpri) (write (char-equal #\a #\b)) (terpri) (write (char-lessp #\a #\b #\c)) (terpri) (write (char-greaterp #\a #\b #\c))
Когда вы выполняете код, он возвращает следующий результат —