Можно ли написать макрос Common Lisp, который берет список измерений и переменных, тело (итерации) и создает код, состоящий из такого количества вложенных циклов, как указано в списке?
То есть что-то вроде:
(nested-loops '(2 5 3) '(i j k) whatever_loop_body)
следует расширить до
(loop for i from 0 below 2 do
(loop for j from 0 below 5 do
(loop for k from 0 below 3 do
whatever_loop_body)))
Продолжение
Как правильно указал Хуайюань, я должен знать параметры, которые нужно передать макросу во время компиляции. Если вам действительно нужна функция, как мне, посмотрите ниже.
Если у вас все в порядке с макросом, используйте рекурсивное решение 6502, это замечательно.