Implementa las operaciones keep y discard sobre colecciones.
Dada una colección y un predicado sobre los elementos de la colección, keep devuelve una nueva colección que contiene aquellos elementos para los que el predicado es verdadero, mientras que discard devuelve una nueva colección que contiene aquellos elementos para los que el predicado es falso.
Por ejemplo, dada la colección de números:
Y el predicado:
Entonces tu operación keep debería producir:
Mientras que tu operación discard debería producir:
Ten en cuenta que la unión de keep y discard abarca todos los elementos.
Es posible que las funciones se llamen keep y discard, o que necesiten nombres diferentes para no entrar en conflicto con funciones o conceptos que ya existan en tu lenguaje.
¡No toques esa funcionalidad de filter/reject/como se llame que te ofrece la biblioteca estándar! Resuélvelo tú mismo con otras herramientas más básicas.
El conjunto de pruebas pasa una instancia de la clase Function a los métodos keep y discard como argumento de bloque.
Para pasar las pruebas correctamente, tendrás que llamar a esa función dentro de tu código.
Si no sabes cómo hacerlo, consulta la documentación de la clase Function.
Regístrate en Exercism para aprender y dominar Wren con 117 ejercicios y mentoría humana real, todo gratis.