Я беру ввод N как количество строк 2D-матрицы в lisp, где каждая строка может содержать максимум 5 элементов. Поэтому я делаю это так. Теперь для каждой строки может быть любое количество элементов от 0 до 5. Поэтому я создал отдельный массив для хранения размера каждой строки 2D-матрицы и увеличиваю его всякий раз, когда я нажимаю на него любой элемент.
(setq myMatrix (make-array (list N 5)))
(setq sizeArray (make-list N:initial-element 0))
Теперь, когда мне нужно добавить элементы в любую строку, я ввожу ввод, пока в строке есть максимальное количество элементов, или пользователь сам выходит, чтобы ввести дополнительные элементы в эту строку. Чтобы добавить элемент в i-ю строку, я делаю что-то вроде этого:
(setf (aref myMatrix i (nth i sizeArray)) "Hi")
// Hi is just for example here
(setf (nth i sizeArray) (+ 1 (nth i sizeArray)))
Теперь я хочу напечатать, скажем, i-ю строку этой myMatrix. Вот так:
Item 1 : myMatrix[i][0]
Item 2 : myMatrix[i][1]..and so on
Напрямую мне нужно j-е значение i-й строки. Как мы можем получить это в lisp?