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.
La suite de tests passe une instance de la classe Function aux méthodes keep et discard comme argument de bloc.
Pour réussir les tests, il te faudra appeler cette fonction dans ton code.
Si tu ne sais pas comment t'y prendre, consulte la documentation de la classe Function.
Inscris-toi sur Exercism pour apprendre et maîtriser Wren avec 117 exercices, et un vrai mentorat humain, le tout gratuitement.