<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=""><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=""></div></div></blockquote></div><br class=""><div class="">I'm not quite happy with this. Consider this case:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">// In some library...</div><div class="">typealias FixedSizeBuffer = (256 x CChar)</div><div class=""><br class=""></div><div class="">// In my code...</div><div class="">var buffer: FixedSizeBuffer = /*???*/</div><div class="">generateCryptographicNoise(&amp;buffer)</div></blockquote><br class=""><div class="">I shouldn't really have to know that 'buffer' has 256 elements.</div><div class=""><br class=""></div><div class="">Throwing out some possibilities:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">var buffer: FixedSizeBuffer = (0...)</div><div class="">var buffer: FixedSizeBuffer = (* x 0)</div><div class="">var buffer: FixedSizeBuffer = (repeat 0)</div></blockquote><div class=""><br class=""></div><div class="">…none of which I'm particularly happy with. (The first one is inconsistent with the not-actually-proposed syntax for forwarding variadics.)</div><br class=""><div class="">Jordan</div></body></html>