не уверен, как это выразить ..
Я написал макрос, который принимает два аргумента. Первый по существу содержит идентификаторы для генерации выражения let. Второй - это код, используемый внутри выражения let (он хочет иметь доступ к этим идентификаторам).
Пример:
(match (Add {ast-> x}) (println x))
Когда вторым аргументом является необработанный код, все работает хорошо. x связывается с x, определенным в выражении let (при расширении макроса он просто отображается как x). Однако, когда второй аргумент является макросом, который генерирует (println x), x расширяется до чего-то вроде user / x.
Есть хорошие идеи, как это исправить?