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