这样做的目的是为了表明深入研究 AST 并不是很难的, 尽管最终的结果代码很容易变得相当复杂, 而且有点黑科技(hacky)....追踪函数调用
在本文中, 我们将创建一个宏 deftraceable, 它允许我们定义可跟踪的函数. 可跟踪函数的工作方式与普通函数一样, 但每当我们调用它时, 都会打印出调试信息....如果每个人都设计这样的结构, 每个 Elixir 项目都会很快地变成自定义语言的大锅汤....在我看来, 模板代码太多是不好的, 因为代码中有了太多形式化的噪音, 因此更难阅读和理解....解决方案是检测这种情况, 并以一种特殊的方式处理它.