نفّذ عملية accumulate التي تأخذ مجموعة وعملية تُجرى على كل عنصر من عناصرها، ثم تُرجع مجموعة جديدة تحتوي على نتائج تطبيق تلك العملية على كل عنصر من عناصر المجموعة المدخلة.
لنأخذ مجموعة الأعداد التالية:
والعملية التالية:
x => x * x)يجب أن يكون الكود قادرًا على إنتاج مجموعة المربعات:
ألقِ نظرة على حزمة الاختبارات لمعرفة توقيع الدالة المتوقع.
لا تلمس تلك الوظائف المسمّاة collect أو map أو fmap أو أيًّا كان اسمها، والتي توفّرها مكتبتك القياسية!
حلّ هذه بنفسك باستخدام أدوات أساسية أخرى بدلًا منها.
ولتكون أكثر تحديدًا، لا يُسمح لك باستخدام أي من طرق LINQ المدمجة.
بما أن accumulate تُرجع IEnumerable، فإن تنفيذها مؤجَّل حتى يتم استدعاء ToList() عليها، وهو ما يُختبر بالطريقة Accumulate_is_lazy.
يتطلب منك هذا التمرين كتابة طريقة امتداد. لمزيد من المعلومات، راجع هذه الصفحة.
سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.