by errors I mean bugs
On Thu, Feb 28, 2013 at 11:43 PM, AtKaaZ <atk...@gmail.com> wrote: > > > > On Thu, Feb 28, 2013 at 11:23 PM, AtKaaZ <atk...@gmail.com> wrote: > >> => *(contains? '(1 2 3) 1)* >> IllegalArgumentException contains? not supported on type: >> clojure.lang.PersistentList clojure.lang.RT.contains (RT.java:724) >> >> => **clojure-version** >> {:major 1, :minor 5, :incremental 0, :qualifier "RC17"} >> >> >> => *(contains? "foo" "o")* >> IllegalArgumentException contains? not supported on type: >> java.lang.String clojure.lang.RT.contains (RT.java:724) >> >> => *(contains? [:a :b :c] :a)* >> false >> >> whoops >> >> contains? clojure.core >> >> Argument Lists: >> [coll key] >> >> Documentation: >> Returns true if key is present in the given collection, otherwise >> returns false. Note that for numerically indexed collections like >> vectors and Java arrays, this tests if the numeric key is within the >> range of indexes. 'contains?' operates constant or logarithmic >> time; >> it will not perform a linear search for a value. See also 'some'. >> >> => (contains? '[:a :b :c] 1) >> true >> => (contains? '[:a :b :c] 3) >> false >> => (contains? '[:a :b :c] 2) >> true >> >> well, I would not have expected that >> >> the code for that is this: > clojure.lang.APersistentVector.containsKey(Object) > > public boolean containsKey(Object key){ > if(!(Util.isInteger(key))) > return false; > int i = ((Number) key).intValue(); > return i >= 0 && i < count(); > } > > if you ask me, it should throw rather than return false, that is, if > anyone cares about not introducing subtle errors easily > >> >> On Thu, Feb 28, 2013 at 11:14 PM, Irakli Gozalishvili >> <rfo...@gmail.com>wrote: >> >>> Hi, >>> >>> Function >>> contains?<http://clojuredocs.org/clojure_core/clojure.core/contains_q> >>> returns >>> true if key is present in the given collection, although arguably on some >>> data structures >>> one would expect behaviour to be different. In fact it's already >>> different on sets: >>> >>> (contains? #{:a :b :c} :a) ; => true >>> >>> Would that be reasonable to change behaviour for other types too like: >>> >>> (contains? [:a :b :c] :a) ; => false >>> (contains? "foo" "o") ; => false >>> (contains? '(1 2 3) 1) ; => false >>> >>> So they do return `true` instead ? >>> >>> If that will break too much code, maybe some other function can be added >>> instead ? >>> >>> Regards >>> -- >>> Irakli Gozalishvili >>> Web: http://www.jeditoolkit.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. >>> >>> >>> >> >> >> >> -- >> Please correct me if I'm wrong or incomplete, >> even if you think I'll subconsciously hate it. >> >> > > > -- > Please correct me if I'm wrong or incomplete, > even if you think I'll subconsciously hate it. > > -- Please correct me if I'm wrong or incomplete, even if you think I'll subconsciously hate it. -- -- 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.