Use defdelegate
to define functions that delegate to functions of the same name defined in another module:
defmodule Math do
defdelegate pi, to: :math
end
iex> Math.pi
3.141592653589793
Another example - protocols with default implementation:
defmodule ReversableString do
# ...
def reverse(s) do
# Implementation omitted
end
# ...
end
defimpl Reversable, for: ReversableString do
defdelegate reverse(self), to: ReversableString
end