HI there,
It's pretty obvious what is happening....you are not providing sets to
union but rather seqs. in other words 'keys' return a seq not a set.
union will simply conj all the elements from the first set into the
second (or vice versa). if they are not sets they won't behave like sets...
in order to get what you want you need:
(clojure.set/union (set (keys {:a 1 :b 2 :c 3})) (set (keys {:a 1 :b 2
:c 3})))
hope that helps,
Jim
On 01/07/13 19:05, Goldritter wrote:
I wanted to create a union of the keys from two maps.
When I write
(clojure.set/union (keys {:a 1 :b 2 :c 3}) (keys {:a 1 :b 2 :c 3}))
I get a result of (:b :c :a :a :c :b).
When I write (set (clojure.set/union (keys {:a 1 :b 2 :c 3}) (keys {:a
1 :b 2 :c 3})))
the result is #{:a :c :b}.
The document of clojure.set/union describes that the function "Return
a set that is the union of the input sets".
As it seems the function keys does not return a set and so the
returning result is not a set too. Correct?
And that this is the reason, that the keys are duplicated in the
returning "list".
I wonder know is this is a bug or not. And what the normal behaviour
of the function should be in this case?
Should it throw an Exception, because the passed parameters are not
sets, should it return a set, even if the passed parameters are no
sets or should the desciption of the function should be changed to
express that a list (with eeventually duplicated entries) is returend,
if the passed parameters are lists?
--
--
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.