I have confronted a similar question in the past when deciding how to label the dimensions of vectors and multidimensional arrays.
My tentative conclusion is that it's best to use raw vectors. => (def v [40 41 42]) #'user/v If you need human-readable labels, build a separate index with constant lookup. => (def vindex {:x 0 :y 1 :z 2}) #'user/vindex => (v (:z vindex)) 42 You can put v and vindex in a single hashmap or class or type or whatever. There are all kinds of reasons for this. The main one is that your data proper remains in a pure array-like data structure and can easily be processed by high-performance algorithms for things like array slicing and transposition, not to mention mathematical routines. The fact that you're putting human-readable names on your indices is just a convenience. Moreover, every time you want to get a sequence of elements out of your vector, you don't want to have to loop through the hashmap pulling the elements out in the right order. Mathematical vectors are orderful things and should be represented in an orderful data structure. Clojure vectors are ordered. Hashmaps are unordered. That's the conclusion I have come to, at any rate. Garth On Fri, Feb 12, 2010 at 10:36 PM, Hozumi <fat...@googlemail.com> wrote: > Hi,all > Although there is no right answer, vector seem to be preferred in many > cases. > Which do you prefer map or vector? > Thanks! > > -- > 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<clojure%2bunsubscr...@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 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