Реалізуйте операції keep і discard над колекціями.
Маючи колекцію та предикат, заданий на її елементах, keep повертає нову колекцію з тими елементами, для яких предикат справджується, а discard повертає нову колекцію з тими елементами, для яких предикат не справджується.
Наприклад, візьмімо колекцію чисел:
І предикат:
Тоді операція keep має повернути:
А операція discard має повернути:
Зауважмо, що разом keep і discard охоплюють усі елементи.
Ці функції можуть називатися keep і discard, а можуть потребувати інших назв, щоб не конфліктувати з наявними функціями чи поняттями в мові, яку ми вивчаємо.
Не чіпайте ту функціональність filter/reject/як-його-там, яку надає стандартна бібліотека! Натомість розвʼяжіть цю вправу самостійно за допомогою інших базових інструментів.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Standard ML, а також 90 вправ та справжнє наставництво від людей, і все це безкоштовно.