Implémente les opérations keep et discard sur des collections.
Étant donné une collection et un prédicat portant sur les éléments de cette collection, keep renvoie une nouvelle collection contenant les éléments pour lesquels le prédicat est vrai, tandis que discard renvoie une nouvelle collection contenant les éléments pour lesquels le prédicat est faux.
Par exemple, étant donné la collection de nombres :
Et le prédicat :
Alors ton opération keep doit produire :
Tandis que ton opération discard doit produire :
Note que l'union de keep et discard correspond à l'ensemble des éléments.
Les fonctions peuvent s'appeler keep et discard, ou bien avoir besoin d'autres noms pour ne pas entrer en conflit avec des fonctions ou des concepts déjà présents dans ton langage.
Ne touche pas à cette fonctionnalité filter/reject/je-ne-sais-quoi fournie par ta bibliothèque standard ! Résous celui-ci toi-même en utilisant d'autres outils de base à la place.
Inscris-toi sur Exercism pour apprendre et maîtriser Scala avec 95 exercices, et un vrai mentorat humain, le tout gratuitement.