Я только начинаю изучать Полог, и мне нужно делать следующие вещи: first: Мне нужно написать предикат, который проверяет, список A содержит только некоторые из тех элементов, которые имеют B. (A = [a, b] B = [a, b, c] истинно), я это сделал, но мне также нужно определить, совпадают ли равные элементы обоих списков.Сравнение двух списков в прологе, чтобы определить, являются ли равные элементы обоих списков одинаковыми.
Example:
A = [b,b,c,c] (b and c is member of B so its true)
B = [a,b,b,c,c,d,f,g]
<--would be true
Я написал первую часть, но мне еще нужно проверить счет. НО я не могу использовать сортировку и цифры, чтобы проверить это: [ учитель предложил использовать выбрать, но это необязательно
второй: я должен добавить еще одно выражение для предиката, который проверяет, если список C содержит только некоторые из те элементы, которые имеют B (идентичны предыдущей задаче). (C = [a, b] B = [a, b, c]) (но это уже сделано), но я также должен проверить, отображаются ли элементы B в 2 раза в C.
Example:
A = [b,b,c,c]
B = [a,b,b,c,c,d,e,f,g]
C = [b,b,b,b,c,c,c,c] /or/ C=[a,a,b,b,b,b]
would be true.
EDIT1: а код, который я написал до сих пор:
subset([ ],_).
subset([H|T],List) :-
member(H,List),
subset(T,List).
p(A,B,C) :- %this is the predicate in which I have to
subset(A,B), %compile everything together
subset(C,B).
Можете ли вы разместить код, который вы уже писали? – Rodolfo