title: What does param: _* mean in Scala?
body: <p>Being new to Scala (2.9.1), I have a <code>List[Event]</code> and would like to copy it into a <code>Queue[Event]</code>, but the following Syntax yields a <code>Queue[List[Event]]</code> instead:</p>
  
  <pre><code>val eventQueue = Queue(events)
  </code></pre>
  
  <p>For some reason, the following works:</p>
  
  <pre><code>val eventQueue = Queue(events : _*)
  </code></pre>
  
  <p>But I would like to understand what it does, and why it works? I already looked at the signature of the <code>Queue.apply</code> function:</p>
  
  <pre><code>def apply[A](elems: A*)
  </code></pre>
  
  <p>And I understand why the first attempt doesn't work, but what's the meaning of the second one? What is <code>:</code>, and <code>_*</code> in this case, and why doesn't the <code>apply</code> function just take an <code>Iterable[A]</code> ?</p>