Yeah, dt/Record1 is not a thing that is referenceable. 

dt/->Record1 is a constructor function
defrecord_example1.datatypes.Record1 is a class 

You can't use the ns alias dt to shorten the name of the class (those are 
different naming contexts).


On Wednesday, September 10, 2014 8:44:18 PM UTC-5, Bin Li wrote:
>
> Yes , it is.
>
> Is it because that / is accessing the 'static' function/field ? so at 
> core.clj:
>
> we can only have there constructors as follow ?
>
> dt/->Record1
> dt/->Record2
> dt/map->Record1
> dt/map->Record2
>
> On Wednesday, September 10, 2014 10:21:45 PM UTC+8, Alex Miller wrote:
>>
>> Is datatypes.clj at src/defrecord_example1/datatypes.clj ?  (note _, not 
>> - in directory name)
>>
>>
>> On Wednesday, September 10, 2014 6:01:25 AM UTC-5, Bin Li wrote:
>>>
>>> I have records defined at datatypes.clj:
>>> ```clojure
>>> (ns defrecord-example1.datatypes)
>>>
>>> (defrecord Record1 [f1])
>>>
>>> (defrecord Record2 [f1 f2 f3])
>>>
>>> ;; this is working at repl
>>> (def m-inside1 
>>>  {Record1
>>>   (fn [] ({:a "A"}))
>>>   Record2
>>>   (fn [] ({:n "B"}))})
>>>
>>> And using at core.clj :
>>> ```clojure
>>> (ns defrecord-example1.core
>>>   (:require 
>>>     [defrecord-example1.datatypes :as dt]))
>>>
>>> ```
>>>
>>> ;; error at repl 
>>> ;; CompilerException java.lang.RuntimeException: No such var: 
>>> dt/Record1, compiling:(defrecord_example1\core.clj:7:1)  
>>> (def m-in-core1 
>>>  {dt/Record1
>>>   (fn [] ({:a "A"}))
>>>   dt/Record2
>>>   (fn [] ({:n "B"}))})
>>>
>>> ```
>>>
>>> Any one can help on this ?
>>> My project.clj:
>>> ``` clojure
>>> (defproject defrecord-example1 "0.1.0-SNAPSHOT"
>>>   :description "FIXME: write description"
>>>   :url "http://example.com/FIXME";
>>>   :license {:name "Eclipse Public License"
>>>             :url "http://www.eclipse.org/legal/epl-v10.html"}
>>>   :dependencies [[org.clojure/clojure "1.6.0"]])
>>>
>>> ```
>>>
>>>

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to