Joe Marshall wrote: > Marshall wrote: > > > > Again, I disagree: it is posible to have mutability without > > pointers/identity/objects. > > I think you are wrong, but before I make a complete ass out of myself, > I have to ask what you mean by `mutability'. (And > pointers/identity/objects, for that matter.)
Responding to requests for examples from Joachim, Joe, and Chris.... The very simple example is the one Darren New already mentioned. Consider the following Java fragment: void foo() { int i = 0; int j = 0; // put any code here you want j = 1; i = 2; // check value of j here. It is still 1, no matter what you filled in above. // The assignment to i cannot be made to affect the value of j. } Those two local primitive variables cannot be made to have the same identity. But you can update them, so this is an example of mutability without the possibility of identity. Earlier I also mentioned SQL tables as an example, although SQL supports *explicit* aliasing via views. > Alan Bawden discusses the phenomenon of `state' in his Ph.D. > dissertation "Implementing Distributed Systems Using Linear Naming". > MIT AI Lab Technical Report AITR-1627. March 1993 He makes a > persuasive argument that `state' is associated with cycles in naming. I would like to read that, but my brain generally runs out of gas at about 21 pages, so it's about an order of magnitude bigger than I can currently handle. :-( As to "cycles in naming" that's certainly an issue. But it it a requirement for state? Back to Java locals, it seems to me they meet the standard definition of state, despite the lack of cycles. As to pointers/references, I earlier mentioned the existence of the reference/dereference operations as being definitional. Note that one can go to some lengths to obscure them, but they're still there. For example, Java has the reference and dereference operators; Java's "." operator is actually C's "->" operator. I am not so bold/foolish as to attempt a defintion of "object" however. :-) Marshall -- http://mail.python.org/mailman/listinfo/python-list