lista de filtros em listas separadas

Preciso filtrar a lista[#,d,e,#,f,g] de modo que eu recebo a saída como[[d,e],[f,g]] ,
Estou preso ao criar uma nova lista toda vez que encontro '#', existe uma maneira de fazer isso? Eu tentei o código abaixo,

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

questionAnswers(3)

yourAnswerToTheQuestion