Macros

defmodule Demo do
  defmacro unless(condition, do: expression) do
    quote do
      if !unquote(condition), do: unquote(expression)
    end
  end
end

Similar to Clojure's:

(ns demo)

(defmacro unless [condition body]
  `(if (not ~condition)
     ~body))