[swift-evolution] Proposal: Contiguous Variables (A.K.A. Fixed Sized Array Type)
Dany St-Amant
dsa.mls at icloud.com
Sat Jan 30 10:32:25 CST 2016
> Le 29 janv. 2016 à 14:13, Dave via swift-evolution <swift-evolution at swift.org> a écrit :
>
> Speaking of spitballing, these can be nested/composed, right?
> let x = (3 x (0, 2 x “”), 2 x NSFileManager())
Looks like there’s a missing set of parenthesis. I would expect:
let x = ((3 x (0, 2 x “”)), (2 x NSFileManager()))
To gives these result
> So, I think that this would be correct:
> let x0 = x.0 // is ((Int, (String, String)), (Int, (String, String)), (Int, (String, String)))
> let x1 = x.1 // is (NSFileManager, NSFileManager)
> let xIdx0 = x.0[0] // is (Int, (String, String))
>
> Can we implicitly “unzip” the implicit "arrays”, as well?
> let x00 = x.0.0 // is (Int, Int, Int)… equivalent to let x00 = x.0.map { $0.0 }
> let x01 = x.0.1 // is ((String, String), (String, String), (String, String))… equivalent to let x01 = x.0.map { $0.1 }
As for the original
let x = (3 x (0, 2 x “”), 2 x NSFileManager())
The results would be:
let x0 = x.0 // is (Int, (String, String)
let x3 = x.3 // is NSFileManager
let xIdx0 = x.0[0] // is Int
Dany
>> On Jan 29, 2016, at 10:43, Joe Groff via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>>
>>> On Jan 28, 2016, at 9:24 PM, Félix Cloutier <felixcca at yahoo.ca <mailto:felixcca at yahoo.ca>> wrote:
>>>
>>> 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.
>>
>> Just spitballing…we could bring the N x <expr> 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...
>>
>> -Joe
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160130/7a12e292/attachment.html>
More information about the swift-evolution
mailing list