I want to implement a predicate P(Xs,Ys,Zs)
where Xs
,Ys
,Zs
are lists.
I'm new in Prolog and I can't find a way to get to the longest sequence in Xs
(example. Xs = ['b','b','A','A','A','A','b','b']
) which is included to Ys
(for example Ys = ['A','A','A','A','c','A','A','A','A']
) without crossing- an even number of times. Maybe someone already wrote this code ore some one can say me how can I start. Thanks for helps.
explanation of teacher.
longest_subsequence(List, Part, Subsequence):-
longest_subsequence_(List, Part, [], Subsequence).
longest_subsequence_(Xs, Ys, CurrentSubsequence, LongestSubsequence):-
append(CurrentSubsequence, Ys, NextSubsequence),
divide_list(Xs, [_LeftYs, NextSubsequence, _RightYs]), !,
longest_subsequence_(Xs, Ys, NextSubsequence, LongestSubsequence).
longest_subsequence_(_Xs, _Ys, LongestSubsequence, LongestSubsequence).