<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Speaking of spitballing, these can be nested/composed, right?<div class=""><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(211, 54, 130); font-family: Menlo; font-size: 11px;" class="">let</span><font face="Menlo" class=""><span style="font-size: 11px;" class=""><font color="#93a1a1" class=""> x = (</font><font color="#6c71c4" class="">3</font></span></font><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">&nbsp;x (</span></font><span style="color: rgb(108, 113, 196); font-family: Menlo; font-size: 11px;" class="">0</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">,&nbsp;</span></font><span style="color: rgb(108, 113, 196); font-family: Menlo; font-size: 11px;" class="">2</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class=""> x&nbsp;</span></font><font color="#dc322f" face="Menlo" class=""><span style="font-size: 11px;" class="">“</span></font><font face="Menlo" class=""><font class=""><font color="#dc322f" class=""><span style="font-size: 11px;" class="">”</span></font><font color="#93a1a1" class=""><span style="font-size: 11px;" class="">), </span></font></font><font color="#6c71c4" style="font-size: 11px;" class="">2</font></font><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">&nbsp;x </span></font><span style="color: rgb(39, 139, 210); font-family: Menlo; font-size: 11px;" class="">NSFileManager</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">())</span></font></div><div class=""><br class=""></div><div class="">So, I think that this would be correct:<div class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(203, 75, 22);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #d33682" class="">let</span><span style="font-variant-ligatures: no-common-ligatures; color: #93a1a1" class=""> x0 = </span><span style="font-variant-ligatures: no-common-ligatures; color: #29a198" class="">x</span><span style="font-variant-ligatures: no-common-ligatures; color: #93a1a1" class="">.</span><span style="font-variant-ligatures: no-common-ligatures; color: #6c71c4" class="">0</span><span style="font-variant-ligatures: no-common-ligatures; color: #93a1a1" class=""> </span>// is ((Int, (String, String)), (Int, (String, String)), (Int, (String, String)))</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(203, 75, 22);" class=""><div style="margin: 0px; line-height: normal; color: rgb(147, 161, 161);" class=""><span style="color: rgb(211, 54, 130);" class="">let</span> x1 = <span style="color: rgb(41, 161, 152);" class="">x</span>.<font color="#6c71c4" class="">1</font>&nbsp;<font color="#cb4b16" style="color: rgb(203, 75, 22);" class="">// is (NSFileManager, NSFileManager)</font></div></div></div><div class=""><div style="margin: 0px; line-height: normal;" class=""><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(211, 54, 130); font-family: Menlo; font-size: 11px;" class="">let</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">&nbsp;xIdx0 =&nbsp;</span></font><span style="color: rgb(41, 161, 152); font-family: Menlo; font-size: 11px;" class="">x</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">.</span></font><span style="color: rgb(108, 113, 196); font-family: Menlo; font-size: 11px;" class="">0</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">[</span></font><span style="color: rgb(108, 113, 196); font-family: Menlo; font-size: 11px;" class="">0</span><font color="#93a1a1" face="Menlo" class=""><span style="font-size: 11px;" class="">]&nbsp;</span></font><font color="#cb4b16" face="Menlo" class=""><span style="font-size: 11px;" class="">// is (Int, (String, String))</span></font></div></div></div><div class=""><br class=""></div><div class="">Can we implicitly “unzip” the implicit "arrays”, as well?</div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(203, 75, 22);" class=""><span style="color: rgb(211, 54, 130);" class="">let</span><span style="color: rgb(147, 161, 161);" class="">&nbsp;x00 =&nbsp;</span><span style="color: rgb(41, 161, 152);" class="">x</span><span style="color: rgb(147, 161, 161);" class="">.</span><span style="color: rgb(108, 113, 196);" class="">0.0</span><span style="color: rgb(147, 161, 161);" class="">&nbsp;</span>// is (Int, Int, Int)… equivalent to let x00 = x.0.map { $0.0 }</div></div><div class=""><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(203, 75, 22);" class=""><span style="color: rgb(211, 54, 130);" class="">let</span><span style="color: rgb(147, 161, 161);" class="">&nbsp;x01 =&nbsp;</span><span style="color: rgb(41, 161, 152);" class="">x</span><span style="color: rgb(147, 161, 161);" class="">.</span><span style="color: rgb(108, 113, 196);" class="">0.1</span><span style="color: rgb(147, 161, 161);" class="">&nbsp;</span>// is ((String, String), (String, String), (String, String))… equivalent to let x01 = x.0.map { $0.1 }</div></div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(203, 75, 22);" class=""><br class=""></div><div class=""><div class="">
- Dave Sweeris

</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Jan 29, 2016, at 10:43, Joe Groff via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><blockquote type="cite" class="">On Jan 28, 2016, at 9:24 PM, Félix Cloutier &lt;<a href="mailto:felixcca@yahoo.ca" class="">felixcca@yahoo.ca</a>&gt; wrote:<br class=""><br class="">To me, it's closely related to the declaration issue. By introducing a (N x Type) syntax, we're solving the LHS problem but leaving the RHS problem intact. If we want to spin it off into a separate proposal, I think that the most logical split is to have a proposal for subscripts on uniform tuples, and a a proposal for the shorthand syntax and a way to initialize values of these types.<br class=""></blockquote><br class="">Just spitballing…we could bring the N x &lt;expr&gt; syntax to expressions as well, so that (5 x 0) is (0,0,0,0,0), and maybe (1, 3 x 0, 2) is (1, 0, 0, 0, 2). With integer literals it's hard to tell which side is which, though...<br class=""><br class="">-Joe<br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></div></blockquote></div><br class=""></div></div></body></html>