Strings and characters use Unicode scalar values with a documented ASCII-exact case approximation; bytevectors contain bytes 0 through 255.
At a glance
LISPEX
(list (string-upcase "Lispex") (char-numeric? #\7) (bytevector-u8-ref #u8(65) 0))Result
OUTPUT
("LISPEX" #t 65)Current guarantees
- String construction, length, reference, copy, append, comparison, case conversion, mapping, and list/vector conversion are supported.
- Character predicates and comparisons are deterministic;
char-numeric?recognizes ASCII digits only. - Bytevector length and
bytevector-u8-refare available with strict byte/range checks.
Text and byte signatures
| Signature | Result | Current boundary |
|---|---|---|
| (string-ref string k) | Unicode scalar character | E312 type; E311 range |
| (string-append string ...) | fresh immutable string | no string-set! in v1.5 |
| (char-ci=? char char ...) | boolean under ASCII-exact approximation | documented Unicode folding edges remain |
| (string-map proc string ...) | fresh string; left-to-right callbacks | callback exactly one character |
| (bytevector-u8-ref bytes k) | exact integer 0..255 | read-only bytevector profile |
Boundaries
- Exact Unicode folding, mutable strings, bytevector mutation/copy, and UTF-8 codecs are deferred.