From: Markus Triska Date: Thu, 13 May 2021 19:48:18 +0000 (+0200) Subject: FIXED: correct propagation of tuples_in/2 (#929) X-Git-Tag: v0.9.0~65^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=581e055359b9f95376449ed42af1d7b680b78945;p=scryer-prolog.git FIXED: correct propagation of tuples_in/2 (#929) Many thanks to @notoria for producing a very short test case. --- diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index 8ee53c0d..90a4045f 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -3,7 +3,7 @@ Author: Markus Triska E-mail: triska@metalevel.at WWW: https://www.metalevel.at - Copyright (C): 2016-2020 Markus Triska + Copyright (C): 2016-2021 Markus Triska This library provides CLP(ℤ): @@ -4283,13 +4283,13 @@ tuples_in(Tuples, Relation) :- must_be(list(list), Tuples), maplist(maplist(fd_variable), Tuples), must_be(list(list(integer)), Relation), - maplist(relation_tuple(Relation), Tuples), - do_queue. + maplist(relation_tuple(Relation), Tuples). relation_tuple(Relation, Tuple) :- relation_unifiable(Relation, Tuple, Us, _, _), ( ground(Tuple) -> memberchk(Tuple, Relation) - ; phrase(tuple_domain(Tuple, Us), _), + ; new_queue(Q), + phrase((tuple_domain(Tuple, Us),do_queue), [Q], _), ( Tuple = [_,_|_] -> tuple_freeze(Tuple, Us) ; true )