On Sun, Mar 8, 2009 at 9:59 PM, Brian Carper <briancar...@gmail.com> wrote: > > On Mar 8, 10:53 am, Rich Hickey <richhic...@gmail.com> wrote:> >> In looking at some of the libraries, I am a bit concerned that maps >> are not being used when the logical entity is in fact a map. > > One time I find myself abusing vectors where maps would be better is > in a situation where I have to retrieve key/value pairs in the order > they were inserted.
This is probably a good example (ordered pairs) of when the logical entity is in fact not a map. I don't think Rich is advocating that everything is a nail, because we have this great hammer. I think using maps gives you much more flexibility. I don't disagree, but I have trouble imagining exactly how it works sometimes. I guess I just have too much of a Ruby/Java mindset. I keep thinking of a type hierarchy and multimethods. How should you write the dispatch function? I guess you could add a tag to the maps and use that to dispatch. Or should you use a set of keys to dispatch (i.e. if the map has :center, and :radius it is a circle, if it has :length and :width it is a rectangle)? That can get messy for something slightly more complicated. I guess you could just write a predicate for each type, or a get-type function that does the check, but it still seems more complicated than just declaring some classes. It's just a different way of thinking for me that I have to get used to. When reading Stu's book I found it interesting that you could declare arbitrary type hierarchies using 'derive, so I know there are corners of Clojure that I have not explored. Paul --~--~---------~--~----~------------~-------~--~----~ 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 clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---