<div dir="ltr">That looks great except that I would prefer (4 * Int). Having &quot;x&quot; as an operator looks very odd to me, and it doesn&#39;t fit with the rest of the language.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 28, 2016 at 8:07 PM, Erica Sadun via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>I find </div><div><br></div><div><div><font face="Menlo">let values: (4 x Int) = (1, 2, 3, 4)</font></div></div><div><br></div><div>to be adequately cromulent. I believe this approach to be:</div><div><br></div><div>* Readable, even to someone unfamiliar with the syntax</div><div>* The parens before the assignment suggest something to do with tuples, and the numbers match the arity after the assignment</div><div>* The type is preserved in-place</div><div>* It&#39;s compact, elegant, simple</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-- E</div><div><br></div><br></font></span><div><blockquote type="cite"><div><div class="h5"><div>On Jan 28, 2016, at 5:56 PM, Joe Groff via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br></div></div><div><div><div class="h5"><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Jan 28, 2016, at 4:04 PM, Haravikk &lt;<a href="mailto:e-mail@haravikk.me" target="_blank">e-mail@haravikk.me</a>&gt; wrote:</div><br><div><div style="word-wrap:break-word"><div><br></div><div><blockquote type="cite"><div>On 28 Jan 2016, at 22:37, Joe Groff via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br><div><br><blockquote type="cite">On Jan 28, 2016, at 2:36 PM, Jacob Bandes-Storch &lt;<a href="mailto:jtbandes@gmail.com" target="_blank">jtbandes@gmail.com</a>&gt; wrote:<br><br>I like this idea, but the syntax seems dangerously close to a call site for  &quot;func *(lhs: Int, rhs: Any.Type)&quot;  (which is obviously ill-advised, but it is allowed).<br><br>Maybe we could take advantage of something which would be very invalid under the current grammar, namely (n T) rather than (n * T):<br><br>    let values: (4 Int) = (1, 2, 3, 4)<br></blockquote><br>Sure, or we could lift (4 x Int) from LLVM IR&#39;s syntax.</div></blockquote><br></div><div>How about:</div><div><br></div><div><span style="white-space:pre-wrap">        </span><font face="Monaco">let values:Int[4] = (1,2,3,4)</font></div><div><br></div><div>While it looks a bit like a subscript, it doesn’t make sense in a type declaration at present, so could be a good way to define restrictions of this type (we could even extend it to collections later). If the similarity is too close then:</div><div><br></div><div><span style="white-space:pre-wrap">        </span><font face="Monaco">let values:(Int[4]) = (1,2,3,4)</font></div><div><br></div><div>Could work too? Just some alternatives anyway, as I like the idea.</div></div></div></blockquote></div><br><div>This kind of syntax doesn&#39;t compose well with other type productions. If you parse Int[N][M] naively as (Int[N])[M], then you end up with an array of M (array of N (Int)), which ends up subscripting in the opposite order, array[0..&lt;M][0..&lt;N]. C works around this by flipping the order of multiple array indices in a type declaration, so int [n][m] is really (int [m]) [n], but this doesn&#39;t work well for Swift, which has other postfix type productions—how would Int[N]?[M] parse? Choosing a prefix notation for fixed-sized array bounds is better IMO to avoid these pitfalls.</div><div><br></div><div>-Joe</div><div><br></div><div><br></div></div></div></div><span class="">_______________________________________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></span></div></blockquote></div><br></div><br>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Trent Nadeau</div>
</div>