Турбо Пролог - Списки - Prolog
Формулировка задачи:
Я очень извиняюсь за создание одинаковой темы но Я НЕ МОГУ ПОНЯТЬ. Ранее уже была создана тема "Удаление начала списка до заданного элемента (включительно)" но я не смог понять, не знаю может я туп, может еще что, давно захожу на этот сайт и когда люди присылают исправленные куски кода то мне не очень понятно что с ними делать и куда их вставлять. Пролог только только начал изучать и многое непонятно, а времени совсем не осталось. Помогите пожалуйста с этой темой еще одному заблудшему человеку. Надеюсь на ваше понимание.
P.S. Извиняюсь за ранее созданную тему в неположенном месте.
А вот исправленный:
Не могу понять что с этим куском делать и относится ли это к Турбо Прологу
Вот нерабочий код который прислал другой человек:
Листинг программы
- nondeterm proc_2_2(list,list,string)
- proc_2_2(List,Result,Element),
- proc_2_2([],[],_).
- proc_2_2([H|T],[],Element):-
- proc_2_2(T,[],Element),
- H<>Element.
- proc_2_2([H|T],T,Element):-
- proc_2_2(T,[],Element),
- H=Element.
Листинг программы
- p(El,[El|T],T):- !.
- p(El,[_|T],X):- p(El,T,X).
Решение задачи: «Турбо Пролог - Списки»
textual
Листинг программы
- domains
- list = integer*
- predicates
- p(integer, list, list)
- clauses
- p(El, [El|T], T):- !.
- p(El, [_|T], X):- p(El, T, X).
- goal
- p(5, [1, 2, 3, 4, 5, 6, 7, 8, 9], X), write(X), nl.
Объяснение кода листинга программы
- В этом коде используется язык программирования Prolog.
- Задача заключается в том, чтобы реализовать рекурсивную функцию для обработки списков.
- Функция
p
принимает три аргумента:El
(элемент списка),L
(список, содержащий элементEl
) иT
(остаток списка после удаления элементаEl
). - Если
El
равен последнему элементу спискаL
, то функция возвращает списокT
. - Если
El
не является последним элементом спискаL
, то функция вызывает саму себя, передавая в качестве аргументовEl
,L
иT
. - В главной части программы вызывается функция
p
с аргументами 5, [1, 2, 3, 4, 5, 6, 7, 8, 9] и X. - Здесь X является результатом работы функции
p
. - Результат выводится на экран с помощью функции
write
. - В конце программы вызывается функция
nl
, чтобы перейти на новую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д