Песочница

Процедуры списков и составных данных

Списки, пары, векторы и байтовые векторы имеют явные границы правильного списка, индекса, идентичности и изменения.

Кратко

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)элемент kE312 нецелое; E311 диапазон; E310 неправильный spine
(vector-ref vector k) / (vector-set! vector k value)элемент / ноль значений; identity сохраняетсяE312 тип; E311 диапазон
(bytevector-u8-ref bytevector k)точное целое 0..255E312 тип; E311 диапазон

Границы

  • Мутаторы пар и байтовых векторов отложены; цитированные составные данные нельзя менять.