نفّذ عمليتَي keep وdiscard على المجموعات.
إذا أُعطيت مجموعة ودالة شرطية تعمل على عناصرها، فإن keep تُرجع مجموعة جديدة تضم العناصر التي تكون فيها الدالة الشرطية صحيحة. أما discard فتُرجع مجموعة جديدة تضم العناصر التي تكون فيها الدالة الشرطية خاطئة.
على سبيل المثال، إذا أُعطيت مجموعة الأعداد:
والدالة الشرطية:
فينبغي أن تُنتج عملية keep ما يلي:
في حين ينبغي أن تُنتج عملية discard ما يلي:
لاحظ أن اتحاد عمليتَي keep وdiscard يشمل كل العناصر.
قد تُسمّى الدالتان keep وdiscard، أو قد تحتاجان إلى اسمين مختلفين كي لا تتعارضا مع دوال أو مفاهيم موجودة في لغة البرمجة التي تستخدمها.
لا تمدّ يدك إلى وظائف filter/reject/ما شابهها التي توفرها مكتبتك القياسية!
حلّ هذه المسألة بنفسك باستخدام أدوات أساسية أخرى بدلًا من ذلك.
يتطلب هذا التمرين تعريف صنف أنواع باسم Partition بطريقتين: keep و discard.
يقدّم هذا الفصل مقدمة جيدة لهذا الموضوع. قد ترغب أيضًا في الاطّلاع على مرجع اللغة.