myappend([], Y, Y). myappend([H|X], Y, [H|Z]) :- myappend(X, Y, Z). myconcat([], []). myconcat([Xs|Xss], Ys) :- myappend(Xs, Zs, Ys), myconcat(Xss, Zs). % try % myappend([1,2,3], [4,5], Zs). % myappend([1,2,3], Ys, [1,2,3,4]). % myappend(Xs, Ys, [1,2,3]).