фильтровать список в отдельные списки

Мне нужно отфильтровать список[#,d,e,#,f,g] так что я получаю вывод как[[d,e],[f,g]] ,
Я застреваю при создании нового списка каждый раз, когда сталкиваюсь с '#', есть ли способ сделать это? Я попробовал код ниже,

filterL([],List) :-[].
filterL([Head|Tail],X) :-
   (  Head \='#'->
      append(X,Head,List),
      filterL(Tail,List)
   ;  filterL(Tail,X)
   ).

Ответы на вопрос(3)

Ваш ответ на вопрос