On Thu, Jan 29, 2009 at 3:56 PM, Dan Larkin <d...@danlarkin.org> wrote:
> > On Jan 29, 2009, at 2:55 PM, Cosmin Stejerean wrote: > > > > On Thu, Jan 29, 2009 at 1:06 PM, Paul Mooser <taron...@gmail.com> wrote: > >> >> I know this has been discussed on the list before to some extent, but >> does clojure by default have any operations which actually do what >> "contains?" sounds like it would do, for all collections? I know that >> you can easily write something similar using "some", but often times >> you just want to find if something is in a list of items. >> >> I've seen Rich say that contains? is for associative things, but I >> think it is an unfortunate name - if the idea is to express that the >> collection has a value for that key, I think the name would ideally >> express that, like: >> >> contains-key? >> has-key? >> maps? >> > > I would prefer has-key? for checking if a key is in a map and contains? for > checking if an element is in a collection. > > > What about leaving "contains?" as is and adding "in?" which would work like > "in" in python. > > (contains? [1 2 50] 50) => false > (in? [1 2 50] 50) => true > > If in? was to be added how would it behave when given a map as the first argument? I would rather have "contains?" do the right thing for list/vectors/sets and keep its current behavior for maps. If we do actually need a function like contains that ONLY accepts a map as the first argument I think a name like has-key? is the most intuitive. -- Cosmin Stejerean http://offbytwo.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 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 -~----------~----~----~----~------~----~------~--~---