Thanks~ "clojure.lang.PersistentHashMap" works~ :) But I feel
something is strange.. See next code, especially arrowed line.

user> clojure.lang.PersistentHashMap
#=clojure.lang.PersistentHashMap
user> (= (class {:a 1 :b 2}) clojure.lang.PersistentHashMap)
true
user> (= (class {}) clojure.lang.PersistentHashMap)
true
user> (= (class {:a 1 :b 2}) (class {}))
true
user> (= (class {:a 1}) (class {}))  ;; <=
false
user> (= (class {:a 1}) clojure.lang.PersistentHashMap)  ;; <=
false
user> (= (class (hash-map :a 1)) clojure.lang.PersistentHashMap)
true
user> (= (class (hash-map :a 1)) (class {:a 1})) ;; <=
false
user> (:a {:a 1})
1

Is {:a 1} not a hash-map? It seems that there is some inconsistency...

On 11월6일, 오후4시27분, "Michael Wood" <[EMAIL PROTECTED]> wrote:
> On Thu, Nov 6, 2008 at 8:25 AM, Chanwoo Yoo <[EMAIL PROTECTED]> wrote:
>
> > Hi all. In Stuart's book - Programming Clojure, there is a multi
> > method like following:
>
> > (defmulti blank? class)
> > (defmethod blank? String [s] (every? #{\space} s))
> > (defmethod blank? nil [_] true)
>
> > After reading the method, I was curious about type or class of native
> > data structures of Clojure. So I typed next code in slime. Hmm.. I
> > didn't understand why classes of {:a 1} and {} are not same. Like
> > Stuart's code, to make multi method branching based on clojure data
> > structure type(map, vector, list), what symbol should I use? (Like
> > String for "string", Is there a Map for {:a 1}? I tried
> > PersistentHashMap, HashMap, Map, so on.. I didn't find it.)
>
> I think what you're looking for is "clojure.lang.PersistentHashMap"
> instead of just "PersistentHashMap".
>
> user=> String
> java.lang.String
> user=> PersistentHashMap
> java.lang.Exception: Unable to resolve symbol: PersistentHashMap in this 
> context
> [...]
> user=> clojure.lang.PersistentHashMap
> clojure.lang.PersistentHashMap
> user=>
>
> I don't know much about Clojure, though, so I suspect there is better
> advice than the above :)
>
> > user> (= (class "abc") String)
> > true
> > user> (class {:a 1 :b 2})
> > #=clojure.lang.PersistentHashMap
> > user> (class {})
> > #=clojure.lang.PersistentHashMap
> > user> (= (class {:a 1}) (class {}))
> > false
> > user> (= (class {:a 1}) (class {:b 2}))
> > true
>
> That seems rather strange to me too.
>
> --
> Michael Wood <[EMAIL PROTECTED]>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to