RosettaCodeData/Task/Flatten-a-list/Prolog/flatten-a-list.pro
2023-07-01 13:44:08 -04: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]).