Implementa las operaciones keep y discard en 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 donde el predicado es verdadero, mientras que discard devuelve una nueva colección que contiene aquellos elementos donde 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 es todos los elementos.
Las funciones pueden llamarse keep y discard, o pueden necesitar nombres diferentes para no chocar con funciones o conceptos existentes en tu lenguaje.
¡No toques esa funcionalidad de filter/reject/cómo se llame que ofrece tu biblioteca estándar! Resuélvelo por tu cuenta usando otras herramientas básicas.
Este ejercicio requiere que llames a una función que se pasa como argumento. En Uiua, puedes hacerlo con macros, que es como este ejercicio espera que lo resuelvas.
Puedes ver de inmediato que un binding es una macro gracias al sufijo !.
Regístrate en Exercism para aprender y dominar Uiua con 100 ejercicios y mentoría humana real, todo gratis.