Sorry if this has been suggested before, but what is wrong with something along

let x: Int[4]
let x: Int<4>

In case of multi-dimension arrays:

let x: Int[4][4]
let x: Int[4, 4]
let x: Int<4><4>
let x: Int<4, 4>

I see small issues with each that would need to be discussed - the first would 
disallow subscripts on types. Subscripts currently cannot be static, at least 
now anyway, though. The second syntax is too close to generics, which may be 
confusing...


> On May 29, 2017, at 11:39 PM, Nicolas Fezans via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
> On Mon 29. May 2017 at 20:57, David Sweeris via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> 
> > On May 29, 2017, at 01:12, Tino Heth via swift-evolution 
> > <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> >
> > I agree strongly that the syntax looks awkward — imho
> > var v: Vector<Int, size: 3>
> > would be a much better fit than
> > var v array 3 of Int
> >
> > As much as I want to have "real" arrays, I don't think we should add new 
> > keywords for them.
> 
> Yeah, a "fixed-size array" is probably the most obvious use-case for allowing 
> literal values to be generic parameters. In fact, at that point, they'd just 
> be another type... no special support needed, other than validating the count 
> when assigning array literals to them.
> 
> 
> The syntax that gained some traction last time they were seriously discussed 
> would also be better, IMHO:
> let x: [Int x 4]
> or maybe it was this?
> let x: [Int * 4]
> Either way, it's more concise, far easier to read (IMHO), and doesn't need 
> new keyword(s).
> 
> I have not followed all previous discussions on this (so sorry if it was 
> already proposed and/or discussed) but from the point of view of the 
> "standard mathematics writing", it seems to me that it should rather be 
> [Int^4] .
> 
> Indeed the three dimensional space built by combining the set of real numbers 
> R is noted R^3 or alternatively RxRxR (but for larger dimensions you 
> certainly do not want this writing!)
> 
> Strictly speaking  Int^4  would be mathematically speaking more correct but  
> [Int^4]  has the advantage of making clear that this is indeed an array.
> 
> There are many aspects in the initial proposal that certainly need a more 
> expert eye than mine. I have one question though. It seems to me that the 
> constant expressions as known as constexpr in C++11 would be allowed as well. 
> Is that right? If yes, are there any differences in the proposal to what is 
> allowed in C++11? 
> 
> Nicolas
> 
> 
> 
> - Dave Sweeris
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to