On Tue, Dec 11, 2012 at 5:17 AM, Jim foo.bar <jimpil1...@gmail.com> wrote: > I disagree... > One of the nice things about clojrue is that, at tis hear, lies the 'equiv' > operator which is basically the 'egal' fn as defined by Baker [1993] [Equal > rights for functional objects or the mroe things change the more they stay > the same]. When using '=' with data-structures you are essentially comparing > values and not types. > > To come back to your example, both are sequential seqs that contain the same > values in the same order. Why shouldn't they be equal?
It's interesting that you quote Baker, because this is one of the places where Clojure explicitly cheats and ignores Baker's operational equivalence in favour of convenience. Egal's operational equivalence would not treat lists and vectors as equivalent because they have very different behaviour characteristics when it comes to conj, etc, but if Clojure treated them differently then laziness would be much more burdensome. There are a few other places where Clojure cheats too, but this is the most noticeable. -Phil -- 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