Проверьте запуском
LISPEX
(list (string-upcase "Lispex") (char-numeric? #\7) (bytevector-u8-ref #u8(65) 0))Наблюдаемый результат
OUTPUT
("LISPEX" #t 65)Как рассуждать
- Поддерживаются создание строк, длина, чтение, копирование, объединение, сравнение, преобразование регистра, отображение и преобразования списков/векторов.
- Предикаты и сравнения знаков детерминированы, а
char-numeric?распознаёт только ASCII-цифры. - Доступны длина байтового вектора и
bytevector-u8-refсо строгими проверками байта и диапазона.
Сигнатуры текста и байтов
| Сигнатура | Результат | Текущая граница |
|---|---|---|
| (string-ref string k) | знак, то есть скаляр Unicode | E312 тип, E311 диапазон |
| (string-append string ...) | новая неизменяемая строка | в текущем профиле нет string-set! |
| (char-ci=? char char ...) | булево при ASCII-точном приближении | сохраняются документированные границы Unicode-свёртывания регистра |
| (string-map proc string) | новая строка, функции вызываются слева направо | принимается только одна строка, а функция возвращает ровно один знак |
| (bytevector-u8-ref bytes k) | точное целое 0..255 | профиль байтовых векторов только для чтения |
Частая ошибка
Полное Unicode-свёртывание регистра, изменяемые строки, изменение и копирование байтовых векторов, а также кодеки UTF-8 отложены.
Куда дальше
Место строк и байтовых значений среди остальных составных типов описано в руководстве, а семейство этих имён показывает указатель.