From: Robert H. <rw...@cs...> - 2005-10-26 03:13:54
|
i agree with this view. the individual fields should not be independent "l-values" (to borrow old terminology), and in particular should never alias. treating a mutable record as a ref to a record (for which there is a functional update operation for fields) seems to be the right thing. so much so, in fact, that i don't see why it should be a primitive notion at all! bob On Oct 25, 2005, at 10:31 PM, John Reppy wrote: > Do you mean the semantics or implementation of equality? The > semantics are > fairly straightforward: just make equality on records with mutable > fields be > pointer equality. In fact, I would argue that refs should be viewed as > syntactic sugar for a record with one mutable field. > > If you want to view mutable fields as a derived form (at least > formally), > then I'd argue for a ref of a record (not a record of refs). The fact > that individual fields cannot be shared with other data structures is > important. > > - John > > On Oct 25, 2005, at 4:18 PM, Peter Sestoft wrote: > >> On Tue, 25 Oct 2005, John Reppy wrote: >> >> >>> Here are a few ideas for short-term (and medium-term) features that >>> I'd like to see: >>> >> >> >>> 7. records with mutable fields. >>> >> >> Preferably this should be syntactic sugar for a records with ref >> fields. OCaml-style updatable records, while useful, would require a >> redesign of equality because updates can create cycles... >> >> Peter >> >> > |