filtrar la lista en listas separadas

Necesito filtrar la lista[#,d,e,#,f,g] tal que obtengo la salida como[[d,e],[f,g]] ,
Estoy atascado al crear una nueva lista cada vez que encuentro '#', ¿hay alguna manera de hacer esto? Intenté el siguiente código,

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