Встречаются ли элементы первого списка во втором списке в том же порядке - Prolog
Формулировка задачи:
Написать программу, которая для двух произвольных списков проверяет, встречаются ли элементы первого списка во втором списке в том же порядке (удалив лишние элементы из второго списка, получаем первый список).
Например: Список1=[a, b, d, x, z], Список2=[s, b, a, c, b, b, d, e, x, r, z].
Решение задачи: «Встречаются ли элементы первого списка во втором списке в том же порядке»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- memb(int,intl)
- diff(intl,intl,intl)
- eqlist(intl,intl)
- task(intl,intl)
- clauses
- memb(_,[]) :- fail.
- memb(H,[H|_]) :- !.
- memb(H,[H1|T]) :- H<>H1, memb(H,T).
- diff([],_,[]).
- diff([H|T],X,[H|R]) :- memb(H,X),diff(T,X,R).
- diff([H|T],X,R) :- not(memb(H,X)),diff(T,X,R).
- eqlist([],[]).
- eqlist([H|T],[H|Z]) :- eqlist(T,Z).
- task(X,Y) :- diff(Y,X,Z), eqlist(X,Z).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д