Yes. To explain to others, it&#x27;s easy to miss how dynamic Erlang is if you don&#x27;t study the syntax, but generally, where ever you see a module or a function, you&#x27;re actually using atoms, and they can be freely substituted by variables containing atoms.<p><pre><code>    Eshell V5.10.1  (abort with ^G)
    1&gt; lists:reverse([1,2,3]).
    [3,2,1]
    2&gt; L = lists.
    lists
    3&gt; R = reverse.
    reverse
    4&gt; L:R([1,2,3]).
    [3,2,1]
</code></pre>
This makes it easy to iterate through lists of modules, calling an init function on them, or generally treating modules generically. It is, I think, perhaps less powerful than Python&#x27;s capabilities, but it can still take you a long ways, and save you a lot of code.