title: Destructuring tuple of tuple in closure
body: <p>I can destructure a tuple of tuple easily:</p>
  
  <pre><code>let tt = (2, (3, 4))
  
  let (a, (b, c)) = tt
  b // =&gt; 3
  </code></pre>
  
  <p>I'd like to do the same when declaring a closure, for example I thought I could write:</p>
  
  <pre><code>[tt].map { (a, (b, c)) in
      // Use b
  }
  </code></pre>
  
  <p>Xcode complains with "Unnamed parameters must be written with the empty name".</p>
  
  <p>Only way I got it to "work" was:</p>
  
  <pre><code>[tt].map { (a, tuple: (b: Int, c: Int)) in
      // Use tuple.b
  }
  </code></pre>
  
  <p>This has two drawbacks I'd like to avoid:</p>
  
  <ul>
  <li>I need to use <code>tuple.b</code> instead of <code>b</code></li>
  <li>I need to specify the types of <code>b</code> and <code>c</code></li>
  </ul>
  
  <p>BTW, my use case is that I want to do a <code>reduce</code> with index so I'm trying using <code>array.enumerate().reduce</code></p>