Everyone's done a great job on Squeak, I'm not criticizing. But this stuff about needing to 'normalize' a Large...Integer before comparing seems dangerous. It appears as though integers can be magically coerced into LargeIntegers (which is nice), but if you don't expect it, it can be quite surprising. Surprises should be minimized.
I've only be using Squeak for a couple weeks, so I'm not comfortable trying to fix this myself.
Don
Don McLane wrote:
Never mind! I discovered "normalize". Thanks.
Don
Don McLane wrote:
This is a new-user question. I'm typing things in a workspace and sending them to the transcript (and, as it turns out, learning to use the debugger). I decided to challenge myself by reviewing some discrete mathematics. So one statement read:
(5 raisedTo: (r-1) modulo: r) = 1 ifFalse: [successFlag := false].
where r was big (in one of my tests it was 501659). The debugger reported that the left hand side of the '=' sign evaluated to "01"--what does the leading '0' mean? Why does the equality test fail? Am I crazy?
Thanks, Don