From 24e6c31c4429d52b11b5ed7a4e798c63b27d854e Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Wed, 3 Feb 2021 23:45:06 +0100 Subject: [PATCH 1/2] add meta_predicate declaration for with_local_attributes/3 This is needed for all_distinct/1 etc. Example: ?- all_distinct([X,Y,Z]). clpz:all_distinct([X,Y,Z]) ; false. --- src/lib/clpz.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index fda2f309..e72a33c1 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -6047,6 +6047,8 @@ remove_attr(Var, Attr) :- functor(Term, Attr, 1), put_atts(Var, -Term). +:- meta_predicate with_local_attributes(?, 0, ?). + with_local_attributes(Vars, Goal, Result) :- catch((Goal, maplist(del_all_attrs, Vars), From b96ff781bc806ff37b4abe9e3b7d986728473b2a Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Wed, 3 Feb 2021 23:49:28 +0100 Subject: [PATCH 2/2] add meta_predicate declaration for must_succeed/1 --- src/lib/clpz.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index e72a33c1..b7fa0ea7 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -5884,10 +5884,12 @@ difference_arcs([V|Vs], FL0) --> writeln(T) :- write(T), nl. +:- meta_predicate must_succeed(0). + must_succeed(G) :- - (G -> true - ;write(failed-G), halt - ). + ( G -> true + ; throw(failed-G) + ). enumerate([], _) --> []. enumerate([N|Ns], V) -->