Hi Laurent, You're right, there is no such thing as a "class defined in a namespace", I meant to ask instead, defines a var, which still would not be correct. Referring to the record as protocol.test.person worked. Thanks.
-Brent On Jun 22, 6:07 pm, Laurent PETIT <laurent.pe...@gmail.com> wrote: > hello, > > 2010/6/22 Brent Millare <brent.mill...@gmail.com>: > > > > > > > user=> (in-ns 'protocol.test) > > #<Namespace protocol.test> > > protocol.test=> (defrecord person [name age]) > > protocol.test.person > > protocol.test=> (person. "bobby" 23) > > #:protocol.test.person{:name "bobby", :age 23} > > protocol.test=> (in-ns 'user) > > #<Namespace user> > > user=> (protocol.test/person. "alice" 2) > > java.lang.IllegalArgumentException: Unable to resolve classname: > > person (NO_SOURCE_FILE:45) > > > Using 1.2 Snapshot: > > commit d694d6d45fb46195ae4de01aab9a2b9f9c06355f > > Date: Thu May 27 23:00:45 2010 -0400 > > > I was expecting defrecord to define a class in the protocol.test > > namespace and should thus be accessible in another namespace with a > > fully qualified symbol but instead got an error. Is this the defined > > behavior? > > No. > defrecord defines a class whose simple name matches the name of the > record, and whose package matches *ns* (with the usual - to _ > conversion). > So while in another namespace, try (protocol.test.person. "alice" 2) > instead of (protocol.test/person. "alice" 2). > There's no such thing as a "class defined in a namespace". Classes are > java constructs, not clojure's. > > HTH, > > -- > Laurent -- 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