On Tue, Nov 4, 2008 at 6:45 AM, Rich Hickey <[EMAIL PROTECTED]> wrote:

>
>
>
> On Nov 4, 2:56 am, "Christian Vest Hansen" <[EMAIL PROTECTED]>
> wrote:
> > On Tue, Nov 4, 2008 at 6:23 AM, Mark H. <[EMAIL PROTECTED]> wrote:
> >
> > > On Nov 3, 6:48 pm, Cosmin Stejerean <[EMAIL PROTECTED]> wrote:
> > >> I think clearly spelling out how objects of a type should be sorted is
> > >> the point of the Comparable interface.
> >
> > > Ah, yes, this is true, I hadn't realized that String and Date both
> > > implement Comparable.  Comparable is supposed to impose a total
> > > ordering on a set, so in a finite set of objects of the same type, the
> > > max is always well defined.
> >
> > +1 on (min) and (max) operating on Comparables.
> >
>
> Hmm...
>
> Do you want:
>
> (max 1 2.1 4/5)
>
> to work?
>
> If so, you can't base it on Comparable, which generally only supports
> homogenous types.
>
> max, like >, is a numeric operation as it stands, for the above and
> speed reasons. If you want a general greatest/least based on
> Comparable (or better yet Clojure's compare), I'm not opposed, but it
> should probably be a different thing.
>
> Rich
>

Clojure's compare seems to already do the right thing, or at least it can
compare strings, haven't tried using dates. Are there performance
implications to having max use compare? Personally I like having functions
like max be generic and if needed create a separate "fast max" function for
cases where I have to go through and apply performance optimizations to my
code, although I'm hoping there is a way to have max be fast that doesn't
involve having to use two different functions.

-- 
Cosmin Stejerean
http://www.offbytwo.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to