Глава 13
Буквы

 13.1 Свойство букв
 13.2 Предикаты для букв
 13.3 Код символа
 13.4 Преобразование букв

Common Lisp содержит тип данных буквы.

Буквы в Common Lisp’е не совсем объекты. Нельзя положится на то, что eq будет работать с ними правильно. В частности, возможно что выражение

(let ((x z) (y z)) (eq x y))

будет ложным, а не истинным, если значение z является буквой. ____

Обоснование: Необязательное равенство букв с помощью eq позволяет разработчикам реализации сделать оптимизации на тех архитектурах, где это удобно. Такое же правило сделано и для чисел, смотрите главу 12.

___________________________________________________________________________________________________________


Таблица 13.1: Стандартные метки букв, символы и описания
  SM05@ собака SD13 обратная кавычка
SP02  ! восклицательный знакLA02 A прописная A LA01 a маленькая a
SP04  " двойная кавычка LB02 B прописная B LB01 b маленькая b
SM01 #диез, решётка LC02 C прописная C LC01 c маленькая c
SC03  $ знак доллара LD02 D прописная D LD01 d маленькая d
SM02 %знак процента LE02 E прописная E LE01 e маленькая e
SM03 &амперсанд LF02 F прописная F LF01 f маленькая f
SP05   апостроф LG02G прописная G LG01g маленькая g
SP06  ( левая круглая скобка LH02 H прописная H LH01 h маленькая h
SP07  ) права круглая скобка LI02 I прописная I LI01 i маленькая i
SM04 * звёздочка LJ02 J прописная J LJ01 j маленькая j
SA01  +знак плюс LK02K прописная K LK01k маленькая k
SP08  , запятая LL02 L прописная L LL01 l маленькая l
SP10  - дефис или знак минусLM02Mпрописная M LM01mмаленькая m
SP11  . точка LN02 N прописная N LN01 n маленькая n
SP12  / слеш LO02 O прописная O LO01 o маленькая o
ND10 0 цифра 0 LP02 P прописная P LP01 p маленькая p
ND01 1 цифра 1 LQ02 Q прописная Q LQ01 q маленькая q
ND02 2 цифра 2 LR02 R прописная R LR01 r маленькая r
ND03 3 цифра 3 LS02 S прописная S LS01 s маленькая s
ND04 4 цифра 4 LT02 T прописная T LT01 t маленькая t
ND05 5 цифра 5 LU02 U прописная U LU01 u маленькая u
ND06 6 цифра 6 LV02 V прописная V LV01 v маленькая v
ND07 7 цифра 7 LW02Wпрописная W LW01wмаленькая w
ND08 8 цифра 8 LX02 X прописная X LX01 x маленькая x
ND09 9 цифра 9 LY02 Y прописная Y LY01 y маленькая y
SP13  : двоеточие LZ02 Z прописная Z LZ01 z маленькая z
SP14  ; точка с запятой SM06[ левая квадратная скобка SM11{ левая фигурная скобка
SA03  <знак меньше чем SM07\ обратный слеш SM13| вертикальная черта
SA04  =знак равенства SM08] правая квадратная скобкаSM14} правая фигурная скобка
SA05  >знак больше чем SD15 ̂ крыша SD19 ~ тильда
SP15  ? вопросительный знак SP09 _ знак подчёркивания

Символы в этой таблице, а также пробел и символы новой строки составляют стандартный набор букв для Common Lisp’а (тип standard-char). Метки символов и описания символов взяты из ISO 6937/2. Первый символ на метке классифицирует символ как Latin, Numeric или Special.


Для сравнения двух объектов, один из которых может быть буквой, необходимо использовать предикат eql.