I sort of remember Rich Hickey say this, but I am not sure :).

As far as I see it, it is generally better to use more specific functions, 
as they make the assumptions about the types of the arguments more 
explicit. Sometimes they are also more efficient (but probably not in this 
case).

So, for working with maps assoc is more preferable, as it is specific to 
maps (at least for non-integer keys).

Polymorphic functions are nice when the concrete argument type is not 
important (e.g. list vs. vector).
But in practice very few code is not going care whether it's working with 
map or a sequence - so conj is kind of overly polymorphic.
This extra polymorphism can be confusing, for instance, if one tries to 
figure out the type of the following expression:
(conj something [1 2]).

contains? is maybe another example of generic function that has created 
confusion.

That's my understanding ) .

On Thursday, August 30, 2012 12:05:48 AM UTC+2, Meikel Brandmeyer (kotarak) 
wrote:
>
> Hi, 
>
> Am 29.08.2012 um 23:38 schrieb dmirylenka: 
>
> > Although, code working with maps shouldn't use conj anyway. 
>
> Why? 
>
> Kind regards 
> Meikel 
>
>

-- 
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

Reply via email to