> On Jul 23, 2017, at 8:32 PM, Taylor Swift <kelvin1...@gmail.com> wrote: > >> On Sun, Jul 23, 2017 at 5:48 PM, David Sweeris <daveswee...@mac.com> wrote: >> >>> On Jul 23, 2017, at 12:18, Taylor Swift <kelvin1...@gmail.com> wrote: >>> >>>> On Sun, Jul 23, 2017 at 2:21 PM, David Sweeris <daveswee...@mac.com> wrote: >>>> >>>>> On Jul 23, 2017, at 09:08, Taylor Swift <kelvin1...@gmail.com> wrote: >>>>> >>>> >>>>> let fsa:[2 * Int] = [2 * 5, 3] // [10, 3] ??? >>>> >>>> Correct. If you wanted a multidimensional array, that'd be written "let >>>> nestedFSA: [2*[5*Int]]". Or, speculating a bit, I suppose maybe "let >>>> nestedFSA: [[5*Int]*2]", if we wanted there to be a column-major option. >>>> IMHO all those read better than this proposal's syntax. >>>> >>>> >>> >>> No, what I’m saying is does the phrase “[2 * 5, 3]” mean a fixed size array >>> of length two and with the elements 5 and 3, or a flexible sized array with >>> two elements 10 and 3? This is v confusing and difficult to read, >>> especially when you have actual multiplications going on such as >>> >>> let fsa:[2 * Int] = [2 * 3 * 5, 3] // [15, 3] ??? >> >> That's... huh? To me, "[2 * 3 * 5, 3]" should obviously evaluate to "[30, >> 3]". How are you getting that "[2*5*3, 3]" could be a 2-element FSA >> containing 15 and 3? Are you suggesting that instead of "[value * value * >> value, value]", it could be parsed as "[modifier value * value, value]" >> (with `modifier` being "2 *")? To me, that syntax would strongly suggest >> that the modifier only applies to the first element of the array, which >> would mean the only other option for parsing it would be equivalent to "[[3, >> 5], 3]", which is neither a match for fsa's type, nor a semantically valid >> array (the elements have to be the same type), nor a syntactically valid >> array (the nested array in the first element is missing its "[]"). >> > > Well, that is the syntax you’re proposing right? What comes on the left of > the asterisk is the FSA dimensions, and what comes to the right is the FSA > elements.
No, the type of the FSA's elements is what comes to the right: "[count * Type]". I don't recall any discussion around the value side of things, so I'd guess they would've just used the existing array literal syntax, "let fsa: [2*[2*Int]] = [[0, 1], [2, 3]]". - Dave Sweeris
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution