Russ Abbott wrote:

Prolog has a univ operator (=..) which constructs and deconstructs terms.

    f(a, b, c) =.. [f, a, b, c]

It works in either direction and unifies variables on either side as long as the "label" is an atom. Is there anything like that in Oz? I haven't seen it. Neither* =..* nor *univ* is in the index of CTM. Thanks.

Oz does not have =.. as a basic operator, but it can easily be defined.
But =.. is almost never needed in practice.  Oz has a much richer
record data type that makes =.. superfluous.

There are also good reasons why Oz does not have 'var' or '!' or
assert or retract or setof or bagof.  These operations are used in
Prolog for particular programming techniques.  In Oz there are
better ways.  For example, dictionaries are almost always a better
primitive than assert or retract.  Search engines are better than
setof or bagof.  And so forth.

Oz is a descendant of AKL, which is a descendant of both
Prolog and Concurrent Prolog.  Oz has taken the best of these
languages and left out the hacks.  At least, that's my view!

Peter

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

Reply via email to