Comparison between Python and "Ruby"

Hrvoje Niksic hniksic at srce.hr
Sun Oct 31 22:50:14 EST 1999


Dale Nagata <dnagata at creo.com> writes:

> Ian Clarke wrote:
> > * No way to automatically convert between long integer and small
> > integer.
> 
> C:\>python
> Python 1.5.1 (#0, Oct 14 1998, 20:14:21) [MSC 32 bit (Intel)] on win32
> Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
> >>> int(1L)
> 1
> >>> long(1)
> 1L

That doesn't look "automatically" to me.

>>> sys.maxint + 1
Traceback (innermost last):
  File "<stdin>", line 1, in ?
OverflowError: integer addition
>>> (long(sys.maxint) + 1) - 1
2147483647L

I've never seen Ruby so I don't know what it does, but in these cases
Lisp will do the right thing.  Example using CLISP:

[1]> (type-of most-positive-fixnum)
FIXNUM
[2]> (type-of (1+ most-positive-fixnum))
BIGNUM
[3]> (type-of (1- (1+ most-positive-fixnum)))
FIXNUM
[4]> (1+ 99999999999999999)
100000000000000000

In Lisp, you can use fixnums (Python ints) and bignums (Python longs)
interchangeably.  Which is a very nice feature.




More information about the Python-list mailing list