Проверьте запуском
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 отложены.
Куда дальше
Держите эту страницу рядом при написании кода. За последовательным объяснением вернитесь к карте синтаксиса или соответствующей главе.