Я создал код в SWI-Prolog, который удаляет все повторяющиеся элементы и возвращает упорядоченный список. Он может вернуть этот список, но не удаляет дубликаты. Вот что у меня есть на данный момент:
flatten([[]], []).
flatten([], []).
flatten([[H1|H2]|T1], Answer) :-
flatten([H1|H2], HAnswer),
flatten(T1, TAnswer),
append(HAnswer, TAnswer, Answer).
flatten([H|T1], Answer) :-
flatten(T1, TAnswer),
append([H], TAnswer, Answer).
Сейчас он выводит это:
[2,4,6,8,1,2,3,4,5,6,7,8]
[v,j,a,v,a,p,y,t,h,o,n]
Когда он должен выводить это:
=> [1,2,3,4,5,6,7,8]
=> [j,v,a,p,y,t,h,o,n]
Что я должен изменить, чтобы эта работа работала? Любая помощь приветствуется.