Встречаются ли элементы первого списка во втором списке в том же порядке - 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).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д