Объяснение готового задания (вычисление "разности множеств") - Prolog

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

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

Помогите, пожалуйста, разобраться с задачей. Заданы s1 и s2 - "множества с повторяющими элементами". Необходимо определить предикат p(+S1,+S2,?S), который вычисляет "разность множеств". Например p([ 1, 2, 1, 2, 1, 3], [5, 3, 3, 1, 2, 2], S) должен давать результат S=[1, 1]; Вот есть код, но не совсем понятно что именно делает каждая строка(особенно во 2 части программы). Объясните пожалуйста, кому не сложно)

Решение задачи: «Объяснение готового задания (вычисление "разности множеств")»

textual
Листинг программы
del([],_,[]). % Если что угодно удалять из пустого списка, будет пустой список
del([H|Tail],H,Tail):- !. % Если голова списка совпадает с удаляемым элементом, ответом будет хвост списка
del([H|Tail],X,[H|NewTail]):-del(Tail,X,NewTail). % Иначе голова переносится в ответ, а хвосты списков обрабатываются рекурсивно

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


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

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

8   голосов , оценка 4.25 из 5
Похожие ответы