> 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
