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