> On Jan 7, 2017, at 18:17, Freak Show via swift-evolution
> <[email protected]> wrote:
>
> It should also be noted that I am not a compiler or VM writer and I don't
> give a fig how the language does things at the implementation level and this
> is primarily a conceptual/syntactic proposal.
Conceptual/syntactic proposals do need to recognize implementation realities,
though, regardless of how much fruit may or may not be involved.
> The goal is to make consuming data types predictable and simple and eliminate
> gratuitous complexity at the conceptual level through generalization of
> special cases.
Tuples can't use the "xyz[0]" syntax because the "[]" part is a function call
which can only return a single type, but tuples can contain as many types as
there are elements.
Array (and dictionaries) can't use the "xyz.0" syntax because the ".0" is
essentially a property on the type, but those all need to be defined at
compile-time which would make it impossible to grow or shrink them at run-time.
(This restriction might go away if the proposal for variadic tuples goes
through, but it hasn't happened yet.)
Anyway, these aren't "special cases" of the same general thing — they're
fundamentally different operations.
As for tuples vs structs, there is some overlap, but not enough IMHO to justify
getting rid of either. And structs can have unhelpful property names just as
easily as tuples.
- Dave Sweeris.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution