Would it make sense to make instance?/type-instance?/type .. multimethods
themselves ?

2009/2/26 Konrad Hinsen <konrad.hin...@laposte.net>

>
> On 26.02.2009, at 01:51, Rich Hickey wrote:
>
> > You raise interesting issues and I'd like to explore them further. I'm
> > not sure the issues you have with type-tag-or-class dispatch are all
> > that prohibitive. In any case, I've added a type function that returns
> > the :type metadata or the class if none:
>
> Thanks, that helps a lot! With a built-in universal dispatching
> function, most of my problems should be solved. Another useful
> function to have would be
>
> (defn type-instance?
>   "Evaluates x and tests if it is an instance of the type or class t.
>    Returns true or false"
>   [t x]
>   (identical? t (type x)))
>
> for type-based dispatching inside a function.
>
> > I'm not sure the mechanism you are using (actual Class types) allows
> > for any more overloading - Class is a single slot too, after all.
>
> True, but the number of classes is not limited. Java programmers can
> live with a single class hierarchy, so it can't be too bad. But
> Clojure's hierarchies are definitely more flexible.
>
> > A bigger problem with the mechanism you've chosen is its dependence on
> > some implementation details. I haven't promised, e.g. that every fn
> > generates a unique class type.
>
> I know, but as I said, my current implementation is just a proof of
> concept. It is not viable for production use for a variety of
> reasons. I was planning to replace it by something based on gen-class
> and proxy, but I will first try to get away with the new type function.
>
> Konrad.
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to