RosettaCodeData/Task/Flatten-a-list/Prolog/flatten-a-list.pro

12 lines
258 B
Prolog
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
flatten(List, FlatList) :-
flatten(List, [], FlatList).
flatten(Var, T, [Var|T]) :-
var(Var), !.
flatten([], T, T) :- !.
flatten([H|T], TailList, List) :- !,
flatten(H, FlatTail, List),
flatten(T, TailList, FlatTail).
flatten(NonList, T, [NonList|T]).