Help me out if I&#x27;m missing something important, but this doesn&#x27;t really seem to add much except for the conceptual overhead of another control structure.<p>The examples given in the article are as clear or clearer without the do syntax.  Compare:<p><pre><code>    [1, -1, -0.5].map(x =&gt; do { if (x &gt; 0) { x * 10 } else { -x * 10 } })
</code></pre>
to<p><pre><code>    [1, -1, -0.5].map(x =&gt; { if (x &gt; 0) { return x * 10 } else { return -x * 10 } })
</code></pre>
as well as<p><pre><code>    var data = do {
      const data = pullSomeData()
      doSomethingElse() &#x2F;&#x2F; sideEffect
      data
    }
</code></pre>
versus<p><pre><code>    const data = pullSomeData()  &#x2F;&#x2F; or `var` if you wish
    doSomethingElse() &#x2F;&#x2F; sideEffect
</code></pre>
Perhaps a more significant example is warranted here.  My suspicion is that if you get code complicated enough to justify a `do` block, it&#x27;s complicated enough to justify a function that can be independently tested.