Implemente as operações keep e discard em coleções.
Dada uma coleção e um predicado sobre os elementos dessa coleção, keep retorna uma nova coleção contendo os elementos para os quais o predicado é verdadeiro, enquanto discard retorna uma nova coleção contendo os elementos para os quais o predicado é falso.
Por exemplo, dada a coleção de números:
E o predicado:
Então a sua operação keep deve produzir:
Enquanto a sua operação discard deve produzir:
Repare que a união de keep e discard corresponde a todos os elementos.
As funções podem se chamar keep e discard, ou podem precisar de nomes diferentes para não entrar em conflito com funções ou conceitos já existentes na sua linguagem.
Não use aquela funcionalidade de filtro/rejeição/sei lá o quê que a sua biblioteca padrão oferece! Resolva por conta própria usando outras ferramentas básicas.
Crie sua conta no Exercism para aprender e dominar Groovy com 66 exercícios e mentoria humana de verdade, tudo de graça.