Raphael Collet writes:
 > Paul Dufresne wrote:
 > > In
 > > http://www.mozart-oz.org/documentation/base/record.html#section.records.records
 > > one can read:
 > > "Adjoin {Record.adjoin +R1 +R2 ?R3} returns the result of adjoining R2 to 
 > > R1. 
 > >  For example, {Adjoin a(a b c: 1) b(4 b: 3 c: 2)}
 > >  yields the record b(4 b b: 3 c: 2) as output."
 > > Should it reads "returns the result of adjoining R1 to R2."?
 > > And, if I understand this right, I would have formulated:
 > > "returns R2 with all features (and their corresponding values) of R1 not
 > > already present in R2."
 > 
 > To be honest I have myself never been at ease with that definition of 
 > Adjoin.  Your proposal makes sense if you understand "adjoin" as "add if 
 > not present".  I have looked a bit at the use of "adjoin" in other 
 > programming languages (notably LISP), and they correspond to what you wrote.
 > 
 > If people agree, we may fix this in the documentation of the upcoming 
 > release (1.3.2).
 > 

It has always looked wrong to me too, but if you look at the
definition of AdjoinAt then it is clear that Adjoining should override
the current definition.

In {Adjoin R1 R2} the features and label in R2 take precedence over
R1.

It would be good to add a clarification to the text that is there,
but I always have to look at the example anyway :-).

k



 

_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to