Результат работы предиката в виде головы с неопределённым хвостом - Prolog

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

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

Есть задача:
Напишите предикат p(+V, -L) - истинный тогда и только тогда, когда список L получается после удаления всех повторных вхождений элементов в список V, например, ?- p([a, b, c, d, d, a], X). X=[a, b, c, d]; No
И написал я такое решение:
Листинг программы
  1. p2([H|T],T1):- member(H,T1),!,p2(T,T1).
  2. p2([H|T],[H|T1]):- p2(T,T1).
  3. p2([],_).
Объясните, люди добрые, почему у меня результат выводится в виде головы с неопределённым хвостом?
Листинг программы
  1. ?- p2([a,b,c,d,d,a],X).
  2. X = [a, b, c, d|_G16068] ;
  3. false.

Решение задачи: «Результат работы предиката в виде головы с неопределённым хвостом»

textual
Листинг программы
  1. p2([H|T], T1) :-
  2.     p2(T, T1),
  3.     member(H,T1),
  4.     !.
  5. p2([H|T], [H|T1]) :-
  6.     p2(T, T1).
  7. p2([], []).

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


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

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

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы