Prolog: filtrando uma lista?

Atualmente, estou trabalhando em um projeto muito curto no Prolog, e fiquei preso tentando aplicar um "filtro" que criei em uma lista. Eu tenho o que você poderia chamar de filtro pronto, mas não posso aplicá-lo. Seria melhor se eu ilustrasse:

filter(A, B) 

... gera 'true' se determinadas condições forem atendidas.

filterList(A, [X, Y, Z])

... gera uma lista que inclui todos os elementos do segundo argumento que fazem a saída do filtrofalso. (Portanto, se o filtro (A, X) for verdadeiro, a saída será [Y, Z]).

Eu tenho a função "filter" pronta, mas agora preciso aplicá-la a uma lista conforme mostrado no segundo exemplo, excluindo todos os elementos para os quais o filtro retorna true quando aplicado com o primeiro argumento.

Portanto, se o filtro é um A == B simples, a função deve receber A [A, B, A, C, D, A] e a saída [B, C, D], removendo todos os elementos para os quais o filtro se aplica, obviamente.

Estou tendo problemas com a estrutura básica da função, portanto, se alguém pudesse fornecer um esboço básico para uma função como essa, seria de grande ajuda. Simplifiquei minha situação o máximo possível para que eu possa pegar o que você puder fornecer e modificá-la para minhas necessidades.

Desde já, obrigado!

questionAnswers(6)

yourAnswerToTheQuestion