التجميع

التجميع

سهل

التعليمات

نفّذ عملية accumulate التي تأخذ مجموعة وعملية تُجرى على كل عنصر من عناصرها، ثم تُرجع مجموعة جديدة تحتوي على نتائج تطبيق تلك العملية على كل عنصر من عناصر المجموعة المدخلة.

لنأخذ مجموعة الأعداد التالية:

  • 1, 2, 3, 4, 5

والعملية التالية:

  • تربيع عدد (x => x * x)

يجب أن يكون الكود قادرًا على إنتاج مجموعة المربعات:

  • 1, 4, 9, 16, 25

ألقِ نظرة على حزمة الاختبارات لمعرفة توقيع الدالة المتوقع.

القيود

لا تلمس تلك الوظائف المسمّاة collect أو map أو fmap أو أيًّا كان اسمها، والتي توفّرها مكتبتك القياسية! حلّ هذه بنفسك باستخدام أدوات أساسية أخرى بدلًا منها.

تلميحات

في هذا التمرين، تفيدك ميزة F# التالية:

  • الاستدعاء الذاتي الذيلّي امنع فيضان المكدس مع المدخلات الكبيرة باستخدام الاستدعاء الذاتي الذيلّي. ورغم عدم وجود حالات اختبار تتحقق من ذلك صراحةً، فإن استخدام الاستدعاء الذاتي الذيلّي يؤدي إلى حل أسرع أداءً. ومن المصادر الجيدة الأخرى عن الاستدعاء الذاتي الذيلّي هذه التدوينة.
  • استنتاج الأنواع يستطيع مُصرِّف F# أن يستنتج الأنواع تلقائيًا، ما يعني أنك غالبًا لن تحتاج إلى كتابة أي أنواع على الإطلاق. ولمزيد من المعلومات عن كيفية عمل ذلك ومزاياه، راجع هذه الصفحة.
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
F# Exercism

مستعد لبدء التجميع؟

سجّل في Exercism لتتعلّم وتتقن F# عبر 18 مفهومًا148 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.