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