Problem with Must-Unify
Posted: 28 Oct 2014 18:15
Hi Thomas,
please check this construction, the compiler (build 7500) has a problem with it:
When replacing the Must-Unifiy, it works fine:
Regards
Martin
please check this construction, the compiler (build 7500) has a problem with it:
Code: Select all
domains
record{Type} =
empty;
node(Type Item).
class predicates
compareRecord : (comparator{Type} CompareItem)
-> comparator{record{Type}} CompareRecord.
clauses
compareRecord(CompareItem) =
{ (RecordA, RecordB) = CompareItem(ItemA, ItemB) :-
node(ItemA) == RecordA,
node(ItemB) == RecordB
}.
clauses
run() :-
_ = compareRecord(compare).
Code: Select all
domains
record{Type} =
empty;
node(Type Item).
class predicates
compareRecord : (comparator{Type} CompareItem)
-> comparator{record{Type}} CompareRecord.
clauses
compareRecord(CompareItem) =
{ (RecordA, RecordB) = CompareItem(ItemA, ItemB) :-
if
node(ItemA) = RecordA,
node(ItemB) = RecordB then
else
exception::raise_error()
end if
}.
clauses
run() :-
_ = compareRecord(compare).
Martin