Обычно языки сами по себе непосредственно поддерживают один из двух таких контейнеров - динамические массивы или списки, обеспечивая (в идеале) агрегирование, индексацию, итерацию, конкатенацию, извлечение подконтейнера, вставку и удаление элементов. Между тем, для практических целей оба контейнера больше дополняют, чем заменяют друг друга, так как из приведенных операций одни принципиально эффективней реализуются для списков, а другие - для массивов.
Отсюда предложение - обеспечить нативную поддержку компилятором как массивов, так и списков с единообразным синтаксисом использования.
Описание:
1. Массивы: a: [array] [ [size] ] [of] integer.
2. Списки: a: [list] [ integer ]
Агрегирование: [элемент1, элемент2...]
Индексирование: a[i]
Итерация: for i in a do....end
Извлечение подконтейнера: a[i..j]
Конкатенация: a ++ b
Вставка-удаление: стандартными процедурами.