title: Is there an equivalent to __MODULE__ for named functions in Elixir/ Erlang?
body: <p>Is there an equivalent for retrieving the name of a function just like like <code>__MODULE__</code> retrieves the name of a Module in Elixir/Erlang? </p>
  
  <p>Example: </p>
  
  <pre><code>defmodule Demo do
    def home_menu do
      module_name = __MODULE__
      func_name = :home_menu 
      # is there a __FUNCTION__
    end
  End
  </code></pre>
  
  <p><em>EDITED</em></p>
  
  <p>The selected answer works,</p>
  
  <p>but calling the returned function name with apply/3 yields this error:</p>
  
  <pre><code>[error] %UndefinedFunctionError{arity: 4, exports: nil, function: :public_home, module: Demo, reason: nil}
  </code></pre>
  
  <p>I have a function :</p>
  
  <pre><code>defp public_home(u, m, msg, reset) do
  
  end
  </code></pre>
  
  <p>The function in question will strictly be called within its module. </p>
  
  <p>Is there a way to dynamically call a private function by name within its own module?</p>