title: What is the point of the deal() function in Octave / MATLAB?
body: <p>Some reference code uses the function <code>deal()</code> trivially, like</p>
  
  <pre><code>[a, b, c] = deal (1,2,3)
  </code></pre>
  
  <p>As described in the documentation (<a href="http://octave.sourceforge.net/octave/function/deal.html" rel="nofollow noreferrer">for Octave</a> and <a href="http://www.mathworks.com/help/matlab/ref/deal.html" rel="nofollow noreferrer">for MATLAB</a>), the function simply copies the inputs to the outputs.  <strong>Why use <code>deal()</code> in this case, or even in general?</strong>  I'm trying to learn "more correct" MATLAB/Octave usage, and wondering if I'm missing something significant.  Perhaps, is this usage...</p>
  
  <ul>
  <li>conventionally stylistic or idiomatic, in place of simple assignment like <code>a=1, b=2, c=3</code> or the more arcane list-unpacking of cell-arrays like <code>[a,b,c] = {1,2,3}{:}</code>, but even more restricted than Python <a href="https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists" rel="nofollow noreferrer">argument unpacking</a>, like in <a href="https://stackoverflow.com/questions/15393161/vector-unpacking-for-octave">this question</a>?</li>
  <li>useful for some more elegant feature -- e.g., "deep" versus "shallow" copy, if such a concept even exists here, if <code>deal()</code> were used with complicated/variable arguments?</li>
  </ul>
  
  <p>I also understand single-argument <code>[a,b,c]=deal(42)</code> but that's essentially <code>a=b=c=42</code>, and <code>[a,b,c]=deal(x)</code> assigns <code>x</code> to all, not elements-of-<code>x</code> to each.</p>
  
  <p>Or perhaps it's ONLY that I'm over-thinking this trivial use of the function.</p>