/* GPL(C) Mohsin Ahmed, http://www.cs.albany.edu/~mosh */ flatten( A, [A] ):- atomic( A ). flatten( [], [] ). flatten( [H|T], P ):- flatten( H, M ), flatten( T, N ), append( M, N, P ) . append([],L,L). append([X|L1],L2,[X|L3]) :- append(L1,L2,L3).