Объединение 2-х списков на прологе - Prolog

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста написать программу для нахождения объединения множеств, представленных списками. НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ОПЕРАТОР ОТСЕЧЕНИЯ ("!").. app([],X,X). app([H|T],X,[H|Y]) :- app(T,X,Y). - функция которая просто объединяет два списка. Т.е. app([1,2,4,5],[1,2,3,6],R) даст R=[1,2,4,5,1,2,3,6]. Нужна помощь с функцией, которая определяет есть ли элемент в списке, и, если он есть, то в итоговый список написать его надо 1 раз. Т. е. вводим ей [1,2,4,5] и [1,2,3,6]. выводит: [1,2,3,4,5,6] Заранее спасибо)

Решение задачи: «Объединение 2-х списков на прологе»

textual
Листинг программы
% Объединение списков
% объединить(список1, список2, результат)
объединить([], L, L).
объединить([X | L1], L2, [X | L]) :- % первым элементом объединения является
                                     % первый элемент первого списка
    объединить(L1, L2, L). % обединить хвост первого списка со вторым списком

Объяснение кода листинга программы

  1. % Объединение списков
  2. % объединить(список1, список2, результат)
  3. объединить([], L, L).
  4. объединить([X | L1], L2, [X | L]) :- % первым элементом объединения является — первым элементом первого списка — объединить(L1, L2, L). % обединить хвост первого списка со вторым списком

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5