> On 31 Aug 2016, at 15:53, Xiaodi Wu <xiaodi...@gmail.com> wrote:
>
> Comparable makes semantic guarantees about how values of conforming types
> might be ordered. You don't need `min` or `max` for that to be useful, since
> it's trivial to implement using comparison operators.
>
> Basic numeric types require compiler magic and thus belong in the standard
> library. Likewise, dictionaries have special syntactic sugar and have uses
> for types that can guarantee comparable semantics. A decimal type, though,
> can be implemented outside the standard library and probably would belong in
> a math library. Likewise mathematical constants such as e. I think min and
> max fall into the latter category.
>
> On Wed, Aug 31, 2016 at 8:10 AM Karl <razie...@gmail.com
> <mailto:razie...@gmail.com>> wrote:
>
> > On 30 Aug 2016, at 10:18, Xiaodi Wu via swift-evolution
> > <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> >
> > As an additive proposal, I don't think this would be in scope for the
> > current phase of Swift 4.
> >
> > Looking forward, though, I'm not sure this belongs in the standard library.
> > In general, my understanding is that Swift's standard library is
> > deliberately small, and that the criteria for additions are that it's
> > widely used *and* also non-trivial for the user to write correctly. I've
> > had to use clamping, obviously, but it's a trivial one-liner that is hard
> > to write incorrectly. If anything, I'd be in favor of removing max and min
> > into a future math library outside the standard library.
>
> min & max (and clamping) are hardly “math” operations. They operate on
> Comparables, so you can apply them to more abstract things than just numbers.
>
> Otherwise, you might as well put Comparable and all standard numeric types
> like Int and Float in a math library, too.
Concrete example I just happened to run across: Foundation’s RunLoopMode
conforms to Comparable. It is entirely possible that you may get a collection
of RunLoopModes and wish to find the min/max or clamp to a particular mode.
https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSRunLoop.swift
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution