I do understand, but I&#x27;ll also point out that that first expression will often (with longer variables or expressions in particular) be broken out like:<p><pre><code>  (* (+ a b)
     (+ c d))
</code></pre>
Which is readable, though not necessarily compact.<p>Also, * and + in the former, aren&#x27;t strictly the same as in the latter. * and + take an arbitrary number of parameters in CL. From [0], `(* )` =&gt; `1`. I can&#x27;t test, but I believe `(* 2)` =&gt; `2` (the spec doesn&#x27;t describe the case of a single parameter, unless I&#x27;m missing it). `+` is the same, but `(+)` =&gt; `0` instead, it&#x27;s identity value.<p>Order of operations is made more explicit, and, I&#x27;ve found, it&#x27;s more useful to think of `+` and `*` as `sum` and `product` rather than `plus` and `times`.<p>[0] <a href="http:&#x2F;&#x2F;www.lispworks.com&#x2F;documentation&#x2F;HyperSpec&#x2F;Body&#x2F;f_st.htm" rel="nofollow">http:&#x2F;&#x2F;www.lispworks.com&#x2F;documentation&#x2F;HyperSpec&#x2F;Body&#x2F;f_st.h...</a><p>[1] <a href="http:&#x2F;&#x2F;www.lispworks.com&#x2F;documentation&#x2F;HyperSpec&#x2F;Body&#x2F;f_pl.htm" rel="nofollow">http:&#x2F;&#x2F;www.lispworks.com&#x2F;documentation&#x2F;HyperSpec&#x2F;Body&#x2F;f_pl.h...</a>