Implementa le operazioni keep e discard sulle collezioni.
Data una collezione e un predicato sui suoi elementi, keep restituisce una nuova collezione che contiene gli elementi per cui il predicato è vero, mentre discard restituisce una nuova collezione che contiene gli elementi per cui il predicato è falso.
Ad esempio, data la collezione di numeri:
E il predicato:
Allora l'operazione keep dovrebbe produrre:
Mentre l'operazione discard dovrebbe produrre:
Nota che l'unione di keep e discard comprende tutti gli elementi.
Le funzioni possono chiamarsi keep e discard, oppure potrebbero richiedere nomi diversi per non entrare in conflitto con funzioni o concetti già presenti nel linguaggio che stai usando.
Lascia stare quella funzionalità di filter/reject/come si chiama che ti offre la libreria standard! Risolvilo invece da solo, usando altri strumenti di base.
Questo esercizio richiede che venga definita una classe di tipi Partition con due metodi: keep e discard.
Questo capitolo fornisce una buona introduzione all'argomento. Potresti anche dare un'occhiata a un riferimento del linguaggio.
Iscriviti a Exercism per imparare e padroneggiare Lean con 100 esercizi e il mentoring di persone reali, tutto gratis.