append( [], L, L ). append( [H|T], L, [H|T1] ) :- append( T, L, T1 ).
Read this as:
The result of joining the empty list to L is L. The result of joining the list whose head is H and whose tail is T to L is a list whose head is H and whose tail is T1 if the result of joining T to L is T1.