Я полный noob, пытающийся написать предикаты, и я немного застрял. Раньше я делал предикат под названием «remDuplicates/2», который бы указывал true, если 2-й список предиката был первым списком с удаленными дубликатами. Пожалуйста, см. Код ниже для предиката, который я использую.Prolog predicate - возвращает список с дубликатами, удаленными из определенного предиката
remDuplicates([], []).
remDuplicates([H|T], [H|T1]) :- subtract(T,[H],T2), remDuplicates(T2, T1).
Однако теперь я пытаюсь создать новый предикат, который использует «remDuplicates», чтобы удалить дублирование из одного списка, называется «remT/1». 'remT/1', который принимает один параметр, должен использовать предикат 'remDuplicates' для удаления любого дублирования, а затем возвращать новый список (без какого-либо дублирования).
Я попытался как-то начать, но на самом деле, я понятия не имею, куда идти. Пожалуйста, ознакомьтесь с началом моей попытки ниже;
remT([]).
remT([H|T]) :- remDuplicates([H|T],[H|T]).
Очень понравилась бы помощь в этом. Благодарю.
Там обычно нет такого понятия, как «возвращение» в Прологе, ни есть изменяемая переменные. Зачем вам такой предикат? –