title: In supercollider, what's the role of "*", "#", "_"?
body: <p>I've been reading through a lot of tutorials and forums on SuperCollider lately, and came accross on some code samples using <code>*</code> and <code>#</code> and <code>_</code>, but I don't find why they are used ? Can someone explain that to me ? Is this related to avoiding multichannel expansion ?</p>
  <p>Some samples:</p>
  <pre><code>(
  var list = [1, 2, 3];
  func(*list);  // equivalent to func(list[0], list[1], list[2])
  )
  </code></pre>
  <p>or</p>
  <pre><code>var a, b, c;
  #a, b, c = [1, 2, 3]; // equivalent to a=1; b=2; c=3;
  </code></pre>
  <p>or</p>
  <pre><code>p = Pbind(
      \degree, Pwhite(-7, 12, inf),
      \dur, Pwrand([0.25, Pn(0.125, 2)], #[0.8, 0.2], inf),
      \legato, Pfunc { ~legato }    // retrieves value set by MIDI control
  ).play;
  )
  </code></pre>
  <p>or (in the <code>Pseq</code>)</p>
  <pre><code>(
  Pbind(
      \mtranspose, -1,
      \octave, 5,
      [\dur, \degree], Ptuple(y.collect(Pseq(_, inf)))
  ).play
  )
  </code></pre>