Nope, that’s not what that does. power_nap is a local variable inside of the do block but it doesn’t stick around after the module is compiled and it isn’t visible outside.
Also, an linguistic nitpick: an “anonymous function” would be a function without a name - but the intent of the code you posted is to name the function PowerNapper.power_nap!
What specifically were you hoping to get with this approach, compared to doing a standard def power_nap do in Servy.PowerNapper?
Related:
defmodule Servy.PowerNapperClient do
alias Servy.PowerNapper
parent = self()
spawn(fn -> send(parent, {:slept, PowerNapper.power_nap.()}) end)
self() here will be the Elixir compiler! The receive will happen while PowerNapperClient is being compiled.






















