On Mar 13, 2009, at 2:00 PM, Ralf Hemmecke wrote: > >>> Is there a function in Sage that really behaves like mathematical >>> equality? > >> If you think about it, this would be rather hard to implement in >> general, in terms of complexity at least. > > It is easier than you think. > > x==y gives true if and only if y is the same object as x (basically > memory address comparison). But, of course, then a copy of x is not > equal to x. That also does not make much sense. > > However, (for me at least) it would be sufficient, if a==b returns > false > if a and b have different parents. Then all boils down to implement == > appropriately for one type (ehm, you call that parent). > > Does someone see a serious problem with that? > > Of course, then QQ(1)==ZZ(1) would return false. But I really don't > see > a problem with that.
I would find that super inconvenient. > If you want to have a more user friendly '==', then > introduce another function, let's call it EQ for the moment, so that > EQ(QQ(1), ZZ(1)) is allowed to apply coercions. > > I don't care much whether you use the name '==' for the first meaning > (returning false for unequal parents) or for the second. But I'd > prefer > one "equality" that does not involve coercions and another one where > implicit coercions are allowed. Actually, I don't care much about an > 'equality function with implicit coercions'. It's very hard to figure > out from the source code what the programmer actually meant. How about "parent(a) == parent(b) and a == b" > Note that it might even be a speed consideration. Always looking up > coercions (even if they are cached) is not a good strategy. And the > current '==' not being transitive might also hide bugs that are really > hard to detect. People have yet to show an example where this really hides any bugs. - Robert --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---