tuples_in/2 now works

This commit is contained in:
Markus Triska
2020-04-08 17:49:06 +02:00
parent 794ceac440
commit e442fddc66

View File

@@ -4295,12 +4295,14 @@ tuples_in(Tuples, Relation) :-
relation_tuple(Relation, Tuple) :- relation_tuple(Relation, Tuple) :-
relation_unifiable(Relation, Tuple, Us, _, _), relation_unifiable(Relation, Tuple, Us, _, _),
( ground(Tuple) -> memberchk(Tuple, Relation) ( ground(Tuple) -> memberchk(Tuple, Relation)
; tuple_domain(Tuple, Us), ; phrase(tuple_domain(Tuple, Us), _),
( Tuple = [_,_|_] -> tuple_freeze(Tuple, Us) ( Tuple = [_,_|_] -> tuple_freeze(Tuple, Us)
; true ; true
) )
). ).
list_first_rest([L|Ls], L, Ls).
tuple_domain([], _) --> []. tuple_domain([], _) --> [].
tuple_domain([T|Ts], Relation0) --> tuple_domain([T|Ts], Relation0) -->
{ maplist(list_first_rest, Relation0, Firsts, Relation1) }, { maplist(list_first_rest, Relation0, Firsts, Relation1) },