That's only obvious if you already know how it works. Jonathan
On Wed, Aug 7, 2013 at 2:13 PM, Karsten Schmidt <toxmeis...@gmail.com>wrote: > The fact, that the docs refer to checking if a "key" is present in the > collection, should make it obvious which types are supported, no? Only > vectors, maps and sets have keys. Lists and seqs do not. Of course it never > hurts to be more explicit about it... > On 7 Aug 2013 12:49, "Marcus Lindner" <marcus.goldritter.lind...@gmail.com> > wrote: > >> Thanks. >> >> But the problem is, that this is not mentioned in the documentation of >> contains? I found so far :(. >> I had such a problem a long time ago and remember now which type of >> "collection" can be used with contains?. But after a time I will forget >> this again and will refer to the documentation. (And when I get the >> Exception I remember again.) >> >> And I think this question arise also more frequently. >> >> But then my assumption that the documentation of contains? is misleading >> is true. Is it possible to update the documentation for the next version? >> >> >> >> >> >> >> 2013/8/7 Baishampayan Ghose <b.gh...@gmail.com> >> >>> Hi, >>> >>> `contains?` only works with associative data-structures like maps & >>> vectors. If you want to find out if a sequence contains a specific >>> object then you need to use `some` paired with a set as a predicate. >>> >>> For example: >>> >>> (some #{3} '(1 2 3 4)) >>> >>> Hope this helps. >>> >>> ~BG >>> >>> >>> On Wed, Aug 7, 2013 at 4:54 PM, Goldritter >>> <marcus.goldritter.lind...@gmail.com> wrote: >>> > In an program I used the result of keys as an argument for a function >>> which >>> > verifies whether an object is in a passed collection or not. >>> > The result I got was following Exception: >>> > IllegalArgumentException contains? not supported on type: >>> > clojure.lang.APersistentMap$KeySeq clojure.lang.RT.contains >>> (RT.java:724) >>> > >>> > What are the reasons behind this Exception? >>> > >>> > In the documentation of contains? it is written, that >>> > "Returns true if key is present in the given collection, otherwise >>> returns >>> > false." >>> > The examples on this page >>> > (http://clojuredocs.org/clojure_core/clojure.core/contains_q) and the >>> > parameter description indicates, that contains? accept any collection >>> as >>> > argument. >>> > >>> > The result of keys is also a collection >>> > => (coll? (keys {:a "f" :b 23})) >>> > true >>> > >>> > So is this a bug or is there a reason behind the fact, that contains? >>> does >>> > not accept any collection? >>> > Or is the documentation wrong and it should nor be a collection as >>> argument >>> > but a set or a vector? >>> > >>> > Because I get the same Exception for a list, but not for a vector. >>> > The same for lists, which returns also true for coll?. >>> > => (coll? '(1 2 3 4)) >>> > true >>> > >>> > => (contains? '(1 2 3 4) 3) >>> > IllegalArgumentException contains? not supported on type: >>> > clojure.lang.PersistentList clojure.lang.RT.contains (RT.java:724) >>> > >>> > => (contains? [1 2 3 4] 3) >>> > true >>> > >>> > -- >>> > -- >>> > 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. >>> > >>> > >>> >>> >>> >>> -- >>> Baishampayan Ghose >>> b.ghose at gmail.com >>> >>> -- >>> -- >>> 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. >> >> >> > -- > -- > 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.