Elixir Macros 系列文章译文
[1] (译) Understanding Elixir Macros, Part 1 Basics
[2] (译) Understanding Elixir...我们的宏接受了输入的 AST, 然后必须生成输出的 AST. 之后编译器会简单地用输出的 AST 替换掉对宏的调用. 这个过程是渐进的 — 一个宏可以返回调用其他宏(甚至它本身)的 AST....也就是说, 我们必须向编译器提供一个关于我们所需求的模块的顺序....iex(4)> quote do {1,2} end
{1, 2}
iex(5)> quote do [1,2,3,4,5] end
[1, 2, 3, 4, 5]
对三元元组的引用(quoted)不会保留它的形状...:
iex(6)> quote do {1,2,3} end
{:{}, [], [1, 2, 3]}
由于列表和二元元组在被引用时能保留结构, 所以关键词列表(keywords list)也可以:
iex