Проверьте запуском
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, копирование, добавление, разворот и конструкторы. - Для векторов доступны создание, чтение, копирование, отображение и
vector-set!. Байтовые векторы в этом профиле только для чтения. - Неверный домен пары или списка даёт E310, неверный индекс или диапазон даёт E311, а неверный тип примитива даёт E312.
Сигнатуры агрегатов
| Сигнатура | Результат / идентичность | Ошибка |
|---|---|---|
| (cons a d) | новая пара | нет |
| (car pair) / (cdr pair) | сохранённый компонент | E310 не пара |
| (list-ref proper-list k) | элемент k | E312 нецелое, E311 диапазон, E310 список, который не заканчивается правильно |
| (vector-ref vector k) / (vector-set! vector k value) | элемент / ноль значений, идентичность сохраняется | E312 тип, E311 диапазон |
| (bytevector-u8-ref bytevector k) | точное целое 0..255 | E312 тип, E311 диапазон |
Частая ошибка
Мутаторы пар и байтовых векторов отложены, а цитированные составные данные менять нельзя.
Куда дальше
Какие составные значения существуют и какие из них изменяемы, сказано в руководстве, а место этих имён среди остальных семейств показывает указатель.