Встречаются ли элементы первого списка во втором списке в том же порядке - Prolog

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

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

Написать программу, которая для двух произвольных списков проверяет, встречаются ли элементы первого списка во втором списке в том же порядке (удалив лишние элементы из второго списка, получаем первый список). Например: Список1=[a, b, d, x, z], Список2=[s, b, a, c, b, b, d, e, x, r, z].

Решение задачи: «Встречаются ли элементы первого списка во втором списке в том же порядке»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. memb(int,intl)
  7. diff(intl,intl,intl)
  8. eqlist(intl,intl)
  9. task(intl,intl)
  10.  
  11. clauses
  12. memb(_,[]) :- fail.
  13. memb(H,[H|_]) :- !.
  14. memb(H,[H1|T]) :- H<>H1, memb(H,T).
  15.  
  16. diff([],_,[]).
  17. diff([H|T],X,[H|R]) :- memb(H,X),diff(T,X,R).
  18. diff([H|T],X,R) :- not(memb(H,X)),diff(T,X,R).
  19.  
  20. eqlist([],[]).
  21. eqlist([H|T],[H|Z]) :- eqlist(T,Z).
  22.  
  23. task(X,Y) :- diff(Y,X,Z), eqlist(X,Z).

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


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

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

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

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

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

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