One quick comment, FWIW ...
I learned early on in working with data abstraction to work hard at not
confusing the state of one object with another. Considering, for example, a
collection type, say Set, the _state_ of a Set is the (mathematical set of
the) _identities_ of the objects in the Set. To say this again, it has to
do with which objects are in the Set, not what their current states are.
Hence, the notion of immutabilty is _not_ necessarily recursive. It depends
on what you are trying to do.
The Clu programming language, designed nearly 30 years ago, had mutable and
immutable versions of each of its fundamental non-primitive data types,
corresponding roughly to structs, unions, and arrays.
J. Eliot B. Moss, Associate Professor http://www.cs.umass.edu/~moss www
Director, Arch. and Lang. Impl. Lab. +1-413-545-4206 voice
Department of Computer Science +1-413-695-4226 cell
140 Governor's Drive, Room 372 +1-413-545-1249 fax
University of Massachusetts at Amherst email@example.com email
Amherst, MA 01003-9264 USA +1-413-545-3733 Priscilla Coe sec'y
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:51 EDT