Песочница

Процедуры строк, знаков и байтовых векторов

Строки и знаки используют скаляры Unicode с документированным ASCII-точным приближением регистра, а байтовые векторы содержат байты 0–255.

Проверьте запуском

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)знак, то есть скаляр UnicodeE312 тип, 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 отложены.

Куда дальше

Место строк и байтовых значений среди остальных составных типов описано в руководстве, а семейство этих имён показывает указатель.

Данные и составные типы · Указатель процедур