Вы можете закрыть открытый список следующим образом:
close_list([]) :- !.
close_list([_ | T]) :-
close_list(T).
т.е. вам нужно пройти через все элементы, чтобы добраться до переменной tail, а затем связать его с пустым списком.
Использование:
?- List = [a, b, C, d, 2.2 | _], close_list(List).
List = [a, b, C, d, 2.2].
Если вы удерживаете переменную, привязанную к хвосту, тогда это становится намного проще:
?- List = [a, b, C, d, 2.2 | Tail], Tail = [].
List = [a, b, C, d, 2.2],
Tail = [].