Lets play devils advocate. Does pretty == readable?<p>I consider this:<p>foo(X) -&gt;<p><pre><code>    case X of 

        bar   -&gt; void;

        _Else -&gt; undefined

    end.
</code></pre>
More readable than:<p>foo(X) -&gt; foo1(X).<p>foo1(bar)   -&gt; void;<p>foo1(_Else) -&gt; undefined.<p>First function is parsable in its entirety immediately. It conveys an idea in a single fragment, which is not too large and it is not too small. Foo executes depending on value of X.<p>Second function requires parsing two fragments of code. It requires a not-so-pretty naming scheme of appending 1 to the function. And you can not grasp the entirety of the matter in a single glance. To parse this function you must follow a train of thought: foo -&gt; foo1 -&gt; execute depending on X.<p>Second function style of code results in a million functions in a single module which I very much disagree results in more readable code.<p>Moving on to next example:<p>foo(X) -&gt;
    final_function(maybe_function(X)).<p>foo(X) -&gt;
    Maybe = maybe_function(X),
    final_function(Maybe).<p>I fail to see how second foo is more clear. In Erlang maybe value can be absolutely anything. It is unnecessary verbose. The explanation on what is wrong with first function contains way to many &quot;shoulds&quot; and not enough &quot;becauses&quot;.