RosettaCodeData/Task/Flatten-a-list/Prolog/flatten-a-list.pro
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

11 lines
258 B
Prolog

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]).