In message <Pine.LNX.4.21.0107100124120.1155-100000 / cr798598-a.crdva1.bc.wave.home.com>
avi / beta4.com writes:

> > Because Fixnum's do not really exist in memory, you cannot change
> > their value.  But look at Perl, Python or Smalltalk, they work the
> > same way, or is there for every number an object in memory?
> > 
> > Numbers are first class objects. But they are passed by value not
> > by reference.
> 
> That's probably the most useful way of looking at it, but I just think of
> Numbers as being normal objects that happen not to have *any* mutating
> methods, or accessible state... the semantics work out the same either
> way, as far as I can tell.

Yes, yes.  And more....

  If numbers have a mutator method, say succ! for +1, then strange
  world appears: at here, we cannot trust that any number has equal
  `value' in the life of program.  Even integer literal such as `0'
  since the program might do a = 0 and then a.succ! in anywhere....


-- 
kjana / os.xaxon.ne.jp                                  July 10, 2001
Penny wise, pound foolish.