Мой предикат должен сравнивать переменные в соответствии с шаблоном, установленным пользователем.
Например:
p1([A,A,B,A],[1,1,5,1]).
true
p1([A,A,B,C],[1,1,1,5]).
false
p1([A,B,B,A,C],[2,3,3,2,1]).
true
и т.д.
Пока мой код работает только для 2 переменных. Я не знаю, как сделать все это рекурсивным.
isEqual(A,A).
pattern([A],X):-isEqual(A,X).
pattern([A,A],X):-isEqual(A,A),isEqual(X,[N1,N2]),isEqual(N1,N2).
pattern([A,B],X):-isEqual(X,[N1,N2]),not(isEqual(N1,N2)),A\==B.