In article <slrnb5igmo.be4.qrczak / qrnik.zagroda>, qrczak / knm.org.pl 
says...
> Sun, 23 Feb 2003 21:46:56 +0900, Michael Bruschkewitz <brusch2 / gmx.net> pisze:
> > def fu h, key, o
> > 	e = h[key]
> > 	e.val = f1(o) 
> > 	e.val2 = f2(o)
> > end
> 
> Almost all languages work that way, I'm surprised that people have
> problems with this. Only C, C++, Pascal and in part Perl are different
> (they have mutable objects passed by value).

The problem is the following (not mine):
If the above function (which was an example of the core problem) is 
taken generic, if modifications are done by a proc passed as forth 
parameter, you'll need an extra line h[key] = e at the end to make this 
"algorithm" work for Integers too. So, as this example shows, it would 
be useful for generic programming, when all types are handled the same 
way. 
I don't want to argue about that and I don't have the time now to dig 
deeper into this domain, so let alone the current behavior. It is, at 
least, too late to change such basic issues.

Michael B.