LL
1. Код представлен в виде
AST. То есть AST для x + 1 это {:+, [], [{:x, [], Elixir}, 1]}
2. То что между quote do и end — возвращается как AST. То есть iex> quote(do: 1 + 2) вернёт {:+, [], [1, 2]}
3. То что внутри unquote — вставляется в AST по значениюТо есть
iex> x = 14.
iex> quote(do: unquote(x) + 2)
{:+, [], [1, 2]}
defmacro my_macro(input_ast), где my_macro это фукнция, которая принимает AST (input_ast) и возвращает AST, которое будет вставлено в код.Конец
