Данная статья рассчитана на тех, кто уже немного познакомился с метапрограммированием в эликсире, но так и не понял, где же применять и творить магию. Повторим: quote и unquote Выражения в эликсире представляют собой кортежи. Эти кортежи состоят из трех частей: название функции, метаданные и аргументы функции. Например блок указанный ниже вернет список кортежей для каждого выражения, для List.last, для пайплайна и для Enum.sum. quote — возвращает внутренние структуры выражений unquote — разворачивает внутри этих структур значения переданных переменных, тем самым позволяя указать в структуре кортежа название нужной функции или значение аргументов. За счет этого в эликсире обеспечивается метапрограммирование. Рассмотрим несколько примеров, которые помогут лучше понять область применения макросов в эликсире. Пример №1 Внутри модулей мы часто используем значения из конфига приложения, обычно это делается командой: Application.get_env(:my_awesome_app, __MODULE__)[:link] Где :my_awesome_app