prefix(X,[_],X).
prefix(X,[H|Y],Z) :- prefix(X,H,[X,H]).

suffix([_],X,X).
suffix(X,[H|Y],Z) :- suffix(H,X,[H,X]).

suffix(X,[1,2,3]).
