عملیات keep و discard را روی مجموعهها پیادهسازی کنید.
اگر یک مجموعه و یک شرط روی عناصر آن داشته باشیم، keep مجموعهی جدیدی برمیگرداند که شامل عناصری است که شرط برایشان «درست» است و discard مجموعهی جدیدی برمیگرداند که شامل عناصری است که شرط برایشان «غلط» است.
برای مثال، مجموعهی زیر از اعداد را در نظر بگیرید:
و این شرط:
در این صورت، عملیات keep شما باید موارد زیر را تولید کند:
و عملیات discard شما باید موارد زیر را تولید کند:
توجه کنید که اجتماع keep و discard همهی عناصر است.
ممکن است این توابع keep و discard نامیده شوند، یا ممکن است برای اینکه با توابع یا مفاهیم موجود در زبان شما تعارض پیدا نکنند به نامهای دیگری نیاز داشته باشند.
به آن قابلیت filter/reject/هر چه اسمش را بگذارید که کتابخانهی استانداردتان در اختیارتان میگذارد دست نزنید!
در عوض، این یکی را خودتان با ابزارهای پایهی دیگر حل کنید.
این تمرین میخواهد که یک کلاس نوع به اسم Partition با دو متد تعریف شود: keep و discard.
این فصل مقدمهی خوبی برای این موضوع است. شاید بخواهید نگاهی هم به مرجع زبان بیندازید.