%%%%%%%% % flatten( +NestedLists, ?FlatList ) :- % FlatList is the list of all not list elements of % the lists in NestedLists, in depth first, left to right % order, from o'keefe's book p. 97-98 %%%%%%% % flatten( Nlist, Flist ) :- flatten( Nlist, Flist, [] ). flatten( [], L0, L ) :- !, L0 = L. flatten( [H|T], L0, L ) :- !, flatten( H, L0, L1 ), flatten( T, L1, L ). flatten( Oth, [Oth|List], List ).