You can use Kernel.apply / 3 .
apply(Enum, :reverse, [[1, 2, 3]])
Example:
With a module like this:
defmodule Apply do def dynamic(method_name, params) do apply(Apply, method_name, params) end def method1(params) do IO.puts "Method 1, called by " <> params end def method2(params) do IO.puts "Method 2, called by " <> params end end
I can call a specific function using this name:
iex(1)> c("apply.ex") [Apply] iex(2)> Apply.dynamic(:method1, ["Hey"]) Method 1, called by Hey :ok iex(3)> Apply.dynamic(:method2, ["Hey"]) Method 2, called by Hey :ok
source share