On Sat, Feb 6, 2016 at 5:38 AM, David Hart via swift-evolution < swift-evolution@swift.org> wrote:
All of this discussion has given me food for thought and I’m not so sure
it’s a proposal I’d still like to pursue.
On 05 Feb 2016, at 16:20, Craig Cruden via swift-evolution < > swift-evolution@swift.org> wrote:
At a high level, I would think that a tuple would just be considered a
“typed” heterogeneous list of values - that you should be able to access
the same way that you access any list - same functions (map, reduce, etc.).
I guess you could view the “labels” as a quasi-column header of some sort,
which means although you might not be able to “convert” from (a: Int, b:
Int) to (x: Int, y: Int) …. you would be able to `map` the values and the
"column headers” to (x: Int, y: Int).
Shameless plug: which of course would make the concept of `cases` within
the mapping of values within the tuple (heterogeneous list) very useful :p
On 2016-02-05, at 22:17:55, Craig Cruden <ccruden@novafore.com> wrote:
At a high level, I would think that a tuple would just be considered a
“typed” heterogeneous list of values - that you should be able to access
the same way that you access any list - same functions (map, reduce, etc.).
I guess you could view the “labels” as a quasi-column header of some sort,
which means although you might not be able to “convert” from (a: Int, b:
Int) to (x: Int, y: Int) …. you would be able to `map` the values and the
"column headers” to (x: Int, y: Int).
On 2016-02-05, at 19:41:19, Maximilian Hünenberger via swift-evolution < > swift-evolution@swift.org> wrote:
Sleeping over it I have to give -1 to the proposal. However we should
consider making explicit casts with "as" to different tuple types with and
without labels (separate proposal).
- Maximilian
Am 05.02.2016 um 08:08 schrieb Taras Zakharko via swift-evolution < > swift-evolution@swift.org>:
The types are clearly different and the current behaviour is fine as it
is.
However, it would be nice to have more support for tuple types in the
language. E.g. I’d expect something like this
let x = (a:4, b:5)
let y = x as (m: Int, n: Int)
to work (but it doesn’t currently, you have to use forced cast).
— Taras
On 05 Feb 2016, at 07:47, Ondrej Barina via swift-evolution < > swift-evolution@swift.org> wrote:
-1 for proposal. Current behavior is fine. There is no need to change it
Ondrej b.
On Feb 5, 2016 12:56 AM, "Chris Lattner via swift-evolution" < > swift-evolution@swift.org> wrote:
> On Feb 4, 2016, at 3:26 PM, Maximilian Hünenberger < >> m.huenenberger@me.com> wrote:
>
> Is this behavior intended?
>
> What disadvantage do I have if a conversion from (a: Int, b: Int) to
(x: Int, y: Int) is allowed?
If that were allowed, then it also stands to reason that a conversion
from “(a: Int, b : Int)” to “(b: Int, a : Int)” would also work… but would
not swap the elements. IMO, it is best to disallow things misleading
things like this.
-Chris
>
>
> Thank you for clarification
> - Maximilian
>
>> Am 05.02.2016 um 00:11 schrieb Chris Lattner <clattner@apple.com>:
>>
>>
>>> On Feb 4, 2016, at 10:57 AM, Maximilian Hünenberger < >> m.huenenberger@me.com> wrote:
>>>
>>> Is there a reasoning behind treating (Int, Int) and (lhs: Int, rhs:
Int) as separate types?
>>
>> I’m not sure what you mean by “separate types”. One has labels, one
does not, so they are clearly separate.
>>
>> Further, "(Int, Int)” needs to be compatible/convertible to "(a : Int,
b : Int)”, but “(a : Int, b : Int)” should not be convertible to “(x : Int,
y : Int)”.
>>
>>> Is there a connection to your tuple splat proposal?
>>
>> No connection at all.
>>
>> -Chris
>>
>
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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