Списки, пары, векторы и байтовые векторы имеют явные границы правильного списка, индекса, идентичности и изменения.
Кратко
LISPEX
(list (list-ref (list 10 20 30) 1) (vector-ref #(4 5) 0))Результат
OUTPUT
(20 4)Текущие гарантии
- Доступ и поиск включают семейство c...r,
list-ref,list-tail, вариантыmember/assoc, copy, append, reverse и конструкторы. - Доступны создание, доступ, copy, map и
vector-set!для векторов; байтовые векторы в этом профиле только для чтения. - Неверный домен пары/списка — E310; индекс/диапазон — E311; тип примитива — E312.
Сигнатуры агрегатов
| Сигнатура | Результат / идентичность | Ошибка |
|---|---|---|
| (cons a d) | новая пара | нет |
| (car pair) / (cdr pair) | сохранённый компонент | E310 не пара |
| (list-ref proper-list k) | элемент k | E312 нецелое; E311 диапазон; E310 неправильный spine |
| (vector-ref vector k) / (vector-set! vector k value) | элемент / ноль значений; identity сохраняется | E312 тип; E311 диапазон |
| (bytevector-u8-ref bytevector k) | точное целое 0..255 | E312 тип; E311 диапазон |
Границы
- Мутаторы пар и байтовых векторов отложены; цитированные составные данные нельзя менять.