+1 I have always found Java’s collection API fairly intuitive. It could serve as a role model, at least partially. - Map: containsKey, containsValue - Set: contains
Note that it has an isEmpty() method. I would also want to have its methods for combining collections such as removeAll() and retainAll(). http://docs.oracle.com/javase/6/docs/api/java/util/Map.html http://docs.oracle.com/javase/6/docs/api/java/util/Set.html [[[Sent from a mobile device. Please forgive brevity and typos.]]] Dr. Axel Rauschmayer a...@rauschma.de Home: http://rauschma.de Blog: http://2ality.com On 02.11.2012, at 22:30, Allen Wirfs-Brock <al...@wirfs-brock.com> wrote: > > On Nov 2, 2012, at 10:56 AM, Jason Orendorff wrote: > >> On Fri, Nov 2, 2012 at 12:29 PM, Domenic Denicola >> <dome...@domenicdenicola.com> wrote: >>> > If we call it "has", should we also rename String.prototype.contains? >>> >>> I'd say no; the distinction between collections "having" an element and >>> strings "containing" a substring seems very sensible. It's a bit more >>> awkward to say a string "has" a substring, and a string is definitely not a >>> collection of substrings in any reasonable sense. >> >> Well, you could also note that array.has(x) looks for a particular value, >> while map.has(x) looks for a particular key. >> >> But that's not the point. There's no common formal contract implemented by >> all these methods; what they share is an informal "hey, look in this thing, >> and tell me if you see that thing" vibe. > > There is no verifiable formal contract. But there can be an informal > contract. In my experience, it is very important when using a dynamic > language to recognize and try to support such informal contracts. > > All the uses of "has" we have defined so far are about the "keys". Having > one place that is about the "values" to create unnecessary confusion > > Note that we (the JS/ES designers) already have a history of being being > inconsistent in our use of names. Consider String indexOf and Array indexOf > they are named the same and appear to have signatures. But they logically > are doing quite different things. String indexOf is looking for the index of > the first element of a subsequence of character elements that matches a > specific character sequence. Array indexOf is looking for the index of a > single element that contains a specific value. You might want to implement a > logically similar subsequence search for Array's but if you do, you can't > call it indexOf because that name was already used for something with > different semantics. We should try to do better as people for our example. > > Allen > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss