对于每个Clojure函数,我想要执行 pre 和 post 函数:
现在,我想在我的* .clj文件中执行所有函数。
我更希望(这也是一个学习练习)在Clojure编译器级别执行此操作。
我如何开始这个?我应该阅读Clojure Compiler源代码的哪一部分?我应该注意哪些关于Clojure编译器内部的文档/教程?
谢谢!
答案 0 :(得分:1)
首先,这听起来像是一个有点疯狂的事情。几乎可以肯定有更好的方法来实现任何明智的目标(即这是尖叫“XY Problem”)。但只要你说这只是一次学习练习,那很好: - )
在破解编译器之前,我可以考虑一些您可能想要考虑的策略:
defn
宏,在创建函数时执行换行。显然,您需要确保使用自己的defn版本而不是内置版本。可能是最简单的解决方案。如果您真的想要破解编译器,那么进行此更改的最简单的地方可能只是在core.clj中攻击defn