Объединять два списка так, чтобы в объединенном списке значения были уникальны - Prolog
Формулировка задачи:
Всем привет!) Помогите решить задачу (SWI Prolog.), необходимо объединять два списка.Что бы в объединенном списке значения были уникальны. Пример: Список1= 1,2,3,4,5 Список2=1,7,8,9,6 в результате должно получится Список3=1,2,3,4,5,6,7,8,9.
Написал две функции одна объединяет, другая проверяет уникальность
Подскажите как проверку уникальности вставить в функцию объединения?
Решение задачи: «Объединять два списка так, чтобы в объединенном списке значения были уникальны»
textual
Листинг программы
unique_append([], List2, List2). unique_append([Head|Tail], List2, TailResult):- member(Head, List2), !, unique_append(Tail, List2, TailResult). unique_append([Head|Tail], List2, [Head|TailResult]):- unique_append(Tail, List2, TailResult).
Объяснение кода листинга программы
Код выполняет объединение двух списков, при этом в объединенном списке значения должны быть уникальны. Список уникальных элементов получается следующим образом:
- Если первый список пустой, то результат будет второй список без изменений.
- Если первый список не пустой, то:
- Проверяется, есть ли первый элемент первого списка во втором списке.
- Если элемент найден, то он пропускается и выполняется рекурсивный вызов для оставшейся части первого списка и второго списка.
- Если элемент не найден, то он добавляется в начало объединенного списка и выполняется рекурсивный вызов для оставшейся части первого списка и второго списка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д