[Newbies] Testing = and == in workspace
btc at openInWorld.com
Sat Jan 7 23:48:37 UTC 2012
Levente Uzonyi wrote:
> On Sat, 7 Jan 2012, Ben Coman wrote:
>> Bert Freudenberg wrote:
>> Am 07.01.2012 um 07:04 schrieb Ben Coman <btc at openInWorld.com>:
>> I had thought that the two assignments of 'xxx' to (x) and (y) would
>> result in different objects, but they turn out to be identical. It
>> is like the compiler has noticed that they are equal and chosen to
>> make them identical.
>> That is indeed what's happening.
>> You can verify this by executing each line separately.
>> Thanks Bert. Doing that is insightful. Interestingly the result is
>> different with numbers. Where strings assigned in separate
>> executions are not
>> identical, numbers assigned in separate executions are identical - at
>> lower values. For example, number 12345678 has (x) and (y) identical
>> but with
>> 123456789 they are not. I then expected those number literals to be
>> a different class, but both numbers inspect as SmallIntegers. btw
>> this is with
> That's impossible, SmallIntegers with the same value are identical.
>> Anyway, my curiosity is satisfied for now.
>> cheers, Ben
I could have sworn I observed that behaviour last night, with the
difference between the 8th and 9th digit, being SmallIntegers in both
cases, but this morning I can't replicate it. Now the difference is
between the 9th and 10th digits, which makes more sense they become
LargePositiveIntegers with the 10th digit. I put it down to fatigue
from being up too late. (though I would have sworn...)
As a final thing. For some naive reason I thought that the SmallIntegers
would stop at 64k. Is it platform dependent on whether the CPU is
16/32/64 bit ?
More information about the Beginners