On Jan 22, 1:31 am, Paul Zimmermann <[EMAIL PROTECTED]> wrote: > I also "enjoyed" several times converting from 'int' to 'Integer' and back. > For beginners, this is a real difficulty, and in my opinion range? or xrange? > should give a big warning that the "list of integers" output contains Python > integers, which cannot be mixed with SAGE integers 'Integer'. > > It would also be nice to have a pointer from range? to srange (which does > mention the difference between SAGE integers and Python int's). > > Finally, is there a valid reason why we have both 'int' and 'Integer'? > (The 'int' type does not seem to have any size limitation.)
The 'int' (and its bignum counterpart, 'long') are native Python types. As far as I know, we don't modify Python at all; removing 'int' would be major surgery, and we're not going to do it. 'Integer' is a Sage type. This means it has lots of useful mathematical convenience methods (like .is_square()), it participates in the coercion model, etc. Also, 'Integer' is implemented with GMP, and 'long' is not, so 'Integer' is much faster for large numbers. range() and xrange() are Python builtins, so they return Python values ('int' or 'long'), and have documentation that doesn't mention any other types. srange() was written for Sage. The final state of affairs, where we have multiple integral types that show up in different contexts, is certainly annoying; but I don't see how to avoid it while basing Sage on an unmodified Python; and we get so much benefit from that decision that I wouldn't want to change it. Some particular annoyances may be fixable. For instance, you can just do: sage: range=srange to overwrite Python's built-in range with Sage's for the current command-line session. I suppose we could do that globally on Sage startup; but 1) this might break other Python code that expects to use the original range(); and 2) I'm not sure we want to go down the path of modifying Python's behavior, other than the preparser. Carl --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---