Объяснить програмку на 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). %% печатаем хвост
Объяснение кода листинга программы
- Объявлены два типа функций:
- member(X,[X|_]):-!.
- member(X,[_|T]):- member(X,T).
- Объявлена функция intersection:
- intersection([],_,[]).
- intersection([H|T1],S2,[H|T]):- member(H,S2), !, intersection(T1,S2,T).
- intersection([_|T],S2,S):- intersection(T,S2,S).
- Объявлена функция view:
- view([]):-!.
- view([H|T]):- write(H, ' '), view(T).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д