On Mon, 03 May 2010 13:08:18 +0200
Stefan Behnel <[email protected]> wrote:

> > Why aren't strings mutable, or lists immutable?  
> 
> What would be the use case of an immutable list, as opposed to a tuple? How 
> would you use mutable strings in a dictionary?

[I'm not totally sure of the following, take it with some doubt.]

Lua does it in a rather different manner for its tables. Keys are compared by 
reference, not value. But immutable thingies are guaranteed to be unique. 
(Meaning eg there are no 2 objects equal to "abc".) This brings the following 
advantages:
* A unique hash func, and fast since the reference (address) is an integer.
* Any object can be a key, since the _reference_ is indeed immutable ;-).

Surprisingly, this works fine and does the right thing :-) When checking a key:
* If it's a value (mutable), unicity ensures that equality of reference also 
means equality of value.
* If it's a "thing" (immutable), like in python comparison in fact compares 
references.

The fact that the actual keys are references allows mutable objects to be used 
as keys. The price is indeed a lookup at immutable object creation (no idea how 
this is done, but I've heard it's efficient).

Denis
________________________________

vit esse estrany ☣

spir.wikidot.com
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to