Задача про 2 списка. Алгоритм пошагового выполнения для рекурсивного обращения - Prolog

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

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

Условие: Даны 2 списка. Занести в результирующий список элементы первого списка, если эти элементы однократно содержатся во втором списке. Если элемент не содержится или встречается 2 или более раз, то в результирующий список элемент не заносится. Подскажите пожалуйста как решить, в голову уже ничего не лезет) И желательно выполнить часть пошагового выполнения для рекурсивного обращения (из правой части правила в левую) с указанием конкретизации.

Решение задачи: «Задача про 2 списка. Алгоритм пошагового выполнения для рекурсивного обращения»

textual
Листинг программы
put_if([],_,[]).
put_if([H|T],L2,[H|T1]):-count_num(H,L2,N),
                                  N=1,
                                  put_if(T,L2,T1).
put_if([_|T],L2,T1):-put_if(T,L2,T1).
% подсчёт количества вхождений
count_num(_,[],0).
count_num(H,[H|T],N):-count_num(H,T,N1),
                                 N is N1+1. %Или N = N1+1, смотря по версии пролога
count_num(H,[_|T],N):-count_num(H,T,N),

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


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

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

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