Объяснить програмку на Turbo-Prolog

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

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

Уважаемые, нужна ваша помощь в объяснении задачи на прологе. Сам пытался разобраться, ничего не выходит!
Спасибо!

Решение задачи: «Объяснить програмку на Turbo-Prolog»

textual
Листинг программы
CLAUSES
member(X,[X|_]):-!. %% искомый элемент стоит в начале списка - конец
member(X,[_|T]):- %% если не в начале, ищем его в хвосте
   member(X,T).
 
intersection([],_,[]). %% пересечение пустого списка с любым списком пусто
intersection([H|T1],S2,[H|T]):- %% если голова первого входит во второй, то она входит и в пересечение
   member(H,S2), !,
intersection(T1,S2,T).
intersection([_|T],S2,S):-  %% иначе пересечение = пересечению хвоста первого со вторым
   intersection(T,S2,S).
 
view([]):-!.  %% список пуст - конец
view([H|T]):- %% печатаем голову
   write(H, ' '), view(T). %% печатаем хвост

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

  1. Объявлены два типа функций:
    • member(X,[X|_]):-!.
    • member(X,[_|T]):- member(X,T).
  2. Объявлена функция intersection:
    • intersection([],_,[]).
    • intersection([H|T1],S2,[H|T]):- member(H,S2), !, intersection(T1,S2,T).
    • intersection([_|T],S2,S):- intersection(T,S2,S).
  3. Объявлена функция view:
    • view([]):-!.
    • view([H|T]):- write(H, ' '), view(T).

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


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

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

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