Waclaw Kusnierczyk (13.9.2007 9:14):
In fact, there is a difference between l(f:V) and l(F:v) in that
there is no requirement on the uniqueness of values in a record, and
in this sense the pattern l(F:v ...) would be nondeterministic,
provided no requirement on sorting the features. But I don't see
why the question 'does it contain the feature f?' would have to be,
in general, more interesting than 'does it contain a feature with
the value v?'
Features and values are not equal. Look at the RecordC constraints,
and think of your proposals in terms of incremental record
specification.
ok. as said before, i was not concerned with the implementation, but
rather with the interface.
I was not talking about implementation, either. I just don't see what
behavior do you propose for the cases when the record arity is not fully
determined yet. If you propose that the minimum feature is selected,
then you'd have to wait until the arity is determined.
Which brings me to a more constructive comment:
local
fun {InsideOut R}
NR={Dictionary.new}
in
{Record.forAllInd R
proc {$ F V} N in
{Dictionary.condExchange NR V F N N}
end
}
{Dictionary.toRecord {Label R} NR}
end
in
case {InsideOut a(b:c d:e)}
of a(c:F ...) then
{Show F}
end
end
Cheers,
Filip
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users