Вы неправильно диагностируете проблему.Первый аргумент, который вы передаете в MAKE-ARRAY, это список из двух символов, * NUMROWS * и * NUMCOLS *.Однако первым аргументом MAKE-ARRAY должен быть список неотрицательных целых чисел.Самый простой способ исправить ваш пример - создать список со значениями : (list * numrows * * numcols *).Таким образом, код будет выглядеть следующим образом:
(setq *numrows* (read map))
(setq *numcols* (read map))
(setq *map* (make-array (list *numrows* *numcols*) :initial-element nil))
Однако обычно вы бы не использовали setq как этот.Вероятно, было бы лучше, в зависимости от контекста, связать эти переменные с помощью LET *:
(let* ((numrows (read map))
(numcols (read map))
(map-array (make-array (list numrows numcols) :initial-element nil))
; do something with map-array
)