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 -~----------~----~----~----~------~----~------~--~---