Current array literal syntax (i.e. “[a, b, c]”) works for dense and/or linear 
arrays, but isn’t so great later on when we add fixed-size arrays and the 
defined (non-zero) elements are sparse and/or the array is multi-dimensional 
(not nested). In these cases I’m thinking of leading each element with its 
coordinate:

… 6: a, …  // complete value, linear array
… (1, 2): b, …  // complete value, multi-dimensional array
… (let x, let y) where y % 2 == 0: c * y + x, …  // pattern of qualifying 
coordinates
… default: d, …  // when no other initializer covers an element (Use “_” 
instead?)

A complete coordinate beats a pattern, which beats a default. The issue I see 
here is that I’m using a colon as a separator between the coordinate expression 
and the value expression. Would that interfere with dictionary literal syntax? 
Would it help the we’ll most likely have to demand that the object receiving 
the literal has to have its type specified (with whatever syntax we agree on), 
as either a declared object with a type annotation or a function parameter (for 
a function either without overload or with the variant used otherwise made 
clear)?

— 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT mac DOT com 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to