You also assume keys are comparable or that 'conj order' is retained, which
is often not true. Consider following map:

(your-dissoc {2 1, :a 1, "foo" 1, 'bar 1} 2)
=> ????

Vectors are indexed and maps are associative. These two concepts share some
functionalities (assoc, get), but are otherwise very different.

JW


On Sat, Nov 2, 2013 at 11:12 PM, <vrak...@gmail.com> wrote:

>
>
> On Saturday, November 2, 2013 4:56:13 PM UTC-5, Jozef Wagner wrote:
>>
>> Problem is, when your proposed dissoc removes value from a vector, it
>> shifts all larger keys. So dissoc would not only remove value at index
>> position, but also change keys for pther values. And this is not what
>> dissoc should do
>>
>
>
> You're right. I'm not sure why this is suddenly clear without essentially
> any new information. :) I think I had the wrong conceptual impression of
> what assoc and dissoc should be, putting the emphasis on the generality of
> the collection types instead its specificity to the indicies.
>
> For my notion of assoc/dissoc to hold parity, it would have to work like
> this which seems undesirable:
>
>
> (def some-vector ['a 'b 'c 'd 'e])
> (def some-map {0 'a 1 'b 2 'c 3 'd 4 'e})
>
>
> (assoc some-vector 2 'x)
> ;=> [a b x d e]
> (dissoc some-vector 2) ;; theoretical
> ;=> [a b d e] ;; theoretical
>
> (assoc some-map 2 'x)
> ;=> {0 a, 1 b, 2 x, 3 d, 4 e}
> (dissoc some-map 2)
> ;=> {0 a, 1 b, 2 d, 3 e} ;; not good
>
> --
> --
> 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/groups/opt_out.
>

-- 
-- 
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/groups/opt_out.

Reply via email to