Можно ли написать макрос 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, это чудесно.