On Wed, Jan 25, 2012 at 3:34 PM, Ben Mabey <b...@benmabey.com> wrote:
> Hi again, > > Is it possible to add primitive type hints to protocols (as the return > type)? My attempt below failed: > > (definterface IPrimitiveTester > (getType [^int x]) > (getType [^long x]) > (getType [^float x]) > (getType [^double x]) > (getType [^Object x])) > > (deftype PrimitiveTester [] > IPrimitiveTester > (getType [this ^int x] :int) > (getType [this ^long x] :long) > (getType [this ^float x] :float) > (getType [this ^double x] :double) > (getType [this ^Object x] :object)) > > > (defmacro primitive-type [x] > `(.getType (PrimitiveTester.) ~x)) > > (defmacro pt [x] > `(.getType (PrimitiveTester.) ~x)) > > (defprotocol Foo > (bar [foo])) > > (deftype Dog [] > Foo > (bar ^double [_] 42.0)) > > (pt (bar (Dog.))) ; => :object > > (I also tried adding the hint to the protocol definition but that resulted > in a compiler error.) > > In my googling the only other reference to protocols with primitive > support was an unanswered question on this mailing list last November[1]. > Hopefully my question gets a little more attention... > > (Pardon all these primitive type questions but I'm in the process of > upgrading a 1.2 app to 1.3 and trying to convert some of our numeric heavy > java code into clojure in the process.) > > Thanks, > Ben > > 1. http://groups.google.com/**group/clojure/browse_thread/** > thread/6015aacd6e8d0d20/**ccca98bea3970240<http://groups.google.com/group/clojure/browse_thread/thread/6015aacd6e8d0d20/ccca98bea3970240> > It's not currently supported. If you're interested in how to best implement fast numeric code I suggest looking at test.benchmark. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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