Как вы делаете массив списков в clojure? - PullRequest
0 голосов
/ 08 февраля 2019

Итак, я работаю над лексером компилятора и определяю таблицу переходов с помощью (make-array rows), где rows - список списков списков.

Однако я сталкиваюсь с проблемами с памятью, создающимивысокий вложенный список из 800 * 127 * '() строк, а затем преобразование его обратно в массив.

Есть ли способ создать пустой 2d-массив, а затем динамически устанавливать его ячейки со списками?Размеры списка каждой ячейки не будут одинаковыми.

1 Ответ

0 голосов
/ 08 февраля 2019

Если на самом деле не нужно для инициализации каждого значения clojure.lang.PersistentList$EmptyList (он же '()), это может быть просто:

(make-array clojure.lang.PersistentList 800 127)

...тем не менее, я не особенно рекомендую это.Есть ли причина, по которой вы не можете использовать вектор векторов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...