Массив - это кортеж вложенных кортежей и целых чисел, причем каждый кортеж имеет фиксированный размер 10 и представляет сегмент ячеек.Если сегмент в настоящее время не используется, целое число (10) действует как заполнитель.Это без абстракции, я полагаю, что это закрытый эквивалент. Вы действительно можете скопировать модуль массива из otp и добавить его в свое собственное приложение, и, таким образом, это будет стабильное представление.
Что касается того, что вы должны использовать без массивазависит от данных и что вы будете делать с ними.Если данные, которые будут в вашем массиве, являются фиксированными, то после этого создается кортеж, который имеет постоянное время доступа для чтения / поиска.В противном случае список звучит как победитель, будь то список списков, список кортежей и т. Д. Однако, опять же, это выстрел в темноте, потому что я не знаю ваших данных или как вы их используете.
См. Реализацию здесь: https://github.com/erlang/otp/blob/master/lib/stdlib/src/array.erl
Также см. Ответ Роберта Вирдинга о реализации массива здесь: Реализация массивов в erlang
И что говорит Фред Хеберто массиве в Краткое посещение общих структур данных
Пример, показывающий структуру массива:
1> A1 = array:new(30).
{array,30,0,undefined,100}
2> A2 = array:set(0, true, A1).
{array,30,0,undefined,
{{true,undefined,undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined},
10,10,10,10,10,10,10,10,10,10}}
3> A3 = array:set(19, true, A2).
{array,30,0,undefined,
{{true,undefined,undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined},
{undefined,undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,true},
10,10,10,10,10,10,10,10,10}}
4>