fork download
  1. defmodule Foo do
  2. def setup(funcs) do
  3. Code.compile_quoted(quote bind_quoted: [funcs: funcs] do
  4. defmodule RuntimeLookup do
  5. for {name, value} <- funcs, do: def unquote(name)(), do: unquote(value)
  6. end
  7. end)
  8. end
  9.  
  10. def main do
  11. setup(foo: 42)
  12.  
  13. IO.inspect RuntimeLookup.foo()
  14. end
  15. end
  16.  
  17. Foo.main
Success #stdin #stdout 0.3s 35608KB
stdin
Standard input is empty
stdout
42