我正在尝试编写一个将地图作为输入的宏,并且会引用该地图中存在的每个符号(键值为&值)。Clojure:创建一个宏来引用地图的每个符号
这是我想要做的。比方说,我有一个宏观quote-everything
是拿一张地图这样的输入:
{foo "foo" :bar bar}
然后,评估:
(quote-everything {foo "foo" :bar bar})
将产生:
{quote(foo) "foo" :bar quote(bar)}
基本上,我想宏观生成引用每个符号的新地图。问题是我不知道从哪里开始,甚至可能。事情是,地图可以是任何东西,并且宏也应该支持嵌套地图。
符号的检测可以使用symbol?
完成。但是,为了支持嵌套的地图,宏应该自己调用。但我不知道如何用这样的宏创建新地图。
任何指针,将不胜感激。
刚才在顶层引用地图时出现了什么问题?那不符合你的需求? – Alex