I'm looking to define a function plak/3
such that plak(X,Y,Z)
returns true when appending Y to X results in Z. So some sample cases:
?- plak([1,2], [2,3], [1,2,2,3]).
true
?- plak([1,2,3], [4,5], X).
X = [1,2,3,4,5].
?- plak(X,[2,3,4],[1,2,3,4]).
X = [1].
Now my idea was to do
plak([],[],[]).
plak([X|Xs], Y, [Z|Zs]) :-
X==Z,
plak(Xs, Y, Zs).
plak(X, [Y|Ys], [Z|Zs]) :-
Y==Z,
plak(X,Ys,Zs).
But this doesn't work.