> On Feb 23, 2017, at 9:54 AM, Karl Wagner <[email protected]> wrote:
> 
> 
>> On 23 Feb 2017, at 18:40, David Sweeris <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> On Feb 22, 2017, at 23:52, Karl Wagner via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>>> 
>>>>> 
>>>>> Are there Number types which can’t be Comparable?
>>>>> 
>>>>> Complex numbers. I believe `Number` is designed to allow a complex number 
>>>>> type to conform.
>>>>>  
>>> 
>>> Magnitude could be comparable then. For vectors, matrices and complex 
>>> numbers, “magnitude” typically refers to a scalar. I don’t think we need 
>>> something broader than that.
>> 
>> Using magnitude for comparison leads to some decidedly odd places:
>> let x: Complex = 1
>> let y: Complex = -2
>> x < y // returns true
>> 
>> - Dave Sweeris 
> 
> 
> Fixed:
>> let x: Complex = 1
>> let y: Complex = -2
>> x.magnitude < y.magnitude // returns true
> 
> I don’t mean we should compare all numbers by magnitude, only that the 
> Magnitude associated type be required to be comparable. That way you could, 
> for example, sort things by magnitude (if that’s useful to you).
> 
> Given that magnitudes appear to always be scalars (I couldn’t find an exact 
> definition beyond a “norm”, which is a scalar), it seems fair to require them 
> to be comparable.

Ah, ok, I misunderstood you. Yes, that seems reasonable to me.

- Dave Sweeris

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

Reply via email to