Вы можете «сгладить» список:
| ?- List = [[+,1,2],[*,3,4]], flatten(List, FlatList).
List = [[+,1,2],[*,3,4]]
FlatList = [+,1,2,*,3,4]
Интерпретаторы Пролога часто включают библиотеку списков, которая будет иметь предикат сглаживания, но вот одна реализация (из библиотеки списков SWI-Prolog):
flatten(List, FlatList) :-
flatten(List, [], FlatList0), !,
FlatList = FlatList0.
flatten(Var, Tl, [Var|Tl]) :-
var(Var), !.
flatten([], Tl, Tl) :- !.
flatten([Hd|Tl], Tail, List) :- !,
flatten(Hd, FlatHeadTail, List),
flatten(Tl, Tail, FlatHeadTail).
flatten(NonList, Tl, [NonList|Tl]).