The Magnitude requirement was meant to be just Numeric (which does not refine Comparable), and only due to the lack of recursive constraints was desugared into Equatable and ExpressibleByIntegerLiteral. Nevin has a very valid point that the very definition of Magnitude is about the ordering of things. FWIW, FloatingPoint defines Magnitude as Comparable (even though I could not find uses for it). TL;DR: associatedtype Magnitude : Numeric, Comparable seems to be the right thing to do, after all.
> On Mar 2, 2017, at 9:23 AM, Björn Forster via swift-evolution > <[email protected]> wrote: > > Hi Joe, > the point made here is about the magnitude of complex numbers. > The magnitude of one complex number can be compared to the magnitude of a > second number. > > Kind Regards > > > > > On Thu, Mar 2, 2017 at 6:21 PM, Joe Groff <[email protected] > <mailto:[email protected]>> wrote: > >> On Mar 2, 2017, at 6:22 AM, Björn Forster <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hello Joe, >> I wanted to ask kindly if it would be possible that the core team adds to >> the rationale the design decision behind >> associatedtype Magnitude : Equatable, ExpressibleByIntegerLiteral >> being not comparable. It was pointed out by several reviewers that it is >> against all intuition that a scalar is not comparable and therefore pretty >> much useless. >> >> It would be great if you could add the thoughts of the core team regarding >> this to the rationale to document the reasons behind it. > > Complex numbers have magnitude, but aren't comparable. > > -Joe > > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
