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 se defina una clase de tipos Partition con dos métodos: keep y discard.
Este capítulo ofrece una buena introducción al tema. También puedes consultar una referencia del lenguaje.
Regístrate en Exercism para aprender y dominar Lean con 100 ejercicios y mentoría humana real, todo gratis.