Каков наилучший способ создания набора макросов, которые обмениваются информацией друг с другом во время компиляции в Clojure?
Я ищу способ, позволяющий макросам знать, что делали предыдущие макросы, и действоватьсоответственно, например, как бы вы реализовали макросы, которые можно использовать следующим образом:
(macro-block-with-data ["A" "B" "C"]
(process-next-data-item) ; macro expands using "A"
(process-next-data-item) ; macro expands using "B"
(process-next-data-item)) ; macro expands using "C"
Уточнения
- Это должно происходить во время компиляции с макросамит.е. не с обычными функциями во время выполнения