On May 4, 2011, at 4:52 PM, Tom Bachmann wrote: > >>> Singleton objects are useful for more important things than optimising >>> '==' with 'is'. They represent 'sui generis' objects that have specific >>> behaviour. But that wasn't my point (not that you could have known it, >>> given that I forgot half the words in my final parenthesis). I meant >>> that having Integer(42) and Rational(42) being different, barely related >>> objects, is unintuitive and makes it hard to extend an existing >>> structure with additional objects. IIUC, to have something like >>> S.Infinity in Sage, you'd need to create a >>> TwoPointCompactifiedExtendedRealLine algebra and convert all your real >>> objects to it (granted, the last one seems to happen automagically). >> >> +1. When I was working on the doctests in the polys, I was fixing some bugs >> in the domains, and I noticed that it's much cleaner to have QQ(2, 1) not >> automatically convert to ZZ(2). The SymPy domain required all kinds of >> special code to check for singletons and automatic casting like that, which >> would break if, for example, a new number was made into a singleton. >> > > I think you are actually +1-ing here the opposite of Ronan's statement, or do > I mis-understand what you are saying?
Well, I guess at least one of us is misunderstanding Ronan. Let's just say that I am +1 to my own statement :) Aaron Meurer > I would agree to that latter interpretation: Integer(1) and Rational(1) > *should* be clearly distinguished, although related objects. This is even so > in "ordinary mathematics", as can be seen with some (admittedly contrived) > questions like "what is the cardinality of 1?". > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
