Elixir Language Modules Using modules


Modules have four associated keywords to make using them in other modules: alias, import, use, and require.

alias will register a module under a different (usually shorter) name:

defmodule MyModule do
  # Will make this module available as `CoolFunctions`
  alias MyOtherModule.CoolFunctions
  # Or you can specify the name to use
  alias MyOtherModule.CoolFunctions, as: CoolFuncs

import will make all the functions in the module available with no name in front of them:

defmodule MyModule do
  import Enum
  def do_things(some_list) do
    # No need for the `Enum.` prefix
    join(some_list, " ")

use allows a module to inject code into the current module - this is typically done as part of a framework that creates its own functions to make your module confirm to some behaviour.

require loads macros from the module so that they can be used.