نفّذ عمليات المصفوفة الأساسية.
في اللغات الوظيفية، تُعدّ عمليات المصفوفات مثل length وmap وreduce شائعة جدًا.
نفّذ سلسلة من عمليات المصفوفة الأساسية، دون استخدام دوال موجودة.
يعتمد العدد الدقيق للعمليات المطلوب تنفيذها وأسماؤها على المسار، لتجنّب التعارض مع الأسماء الموجودة، لكن العمليات العامة التي ستنفّذها تشمل:
append (بإعطاء مصفوفتين، أضِف كل عناصر المصفوفة الثانية إلى نهاية المصفوفة الأولى)؛concatenate (بإعطاء سلسلة من المصفوفات، ادمج كل عناصر المصفوفات كلها في مصفوفة واحدة مسطّحة)؛filter (بإعطاء دالة شرطية ومصفوفة، أرجِع المصفوفة التي تضم كل العناصر التي يكون عندها predicate(item) صحيحًا)؛length (بإعطاء مصفوفة، أرجِع العدد الإجمالي للعناصر داخلها)؛map (بإعطاء دالة ومصفوفة، أرجِع مصفوفة نتائج تطبيق function(item) على كل العناصر)؛foldl (بإعطاء دالة ومصفوفة وقيمة مراكم ابتدائية، اطوِ (اختزل) كل عنصر في المراكم من اليسار)؛foldr (بإعطاء دالة ومصفوفة وقيمة مراكم ابتدائية، اطوِ (اختزل) كل عنصر في المراكم من اليمين)؛reverse (بإعطاء مصفوفة، أرجِع مصفوفة تضم كل العناصر الأصلية، لكن بترتيب معكوس).لاحظ أن ترتيب تمرير الوسائط إلى دالتي الطيّ (foldl وfoldr) مهم.
في Java يُعدّ من أفضل الممارسات استخدام طرق الكائن بدلًا من طرق الصنف. غير أن هناك حالات يكون فيها من المناسب تمامًا أن تكون الدالة static. ولأن الأصناف في Java مغلقة أمام التعديل (أي لا يمكنك إضافة أعضاء إلى صنف من خارج تعريفه كما يمكنك في لغات أخرى مثل Ruby أو JavaScript)، فلا يمكنك إضافة سلوك جديد إلى الصنف مباشرةً. فماذا تفعل إذا كنت لا تزال ترغب في تعريف سلوك لنوع معيّن؟ الحل المتّبع في هذه الحالة هو كتابة طريقة مساعدة.
غالبًا ما يُطلق على مجموعات هذه الأنواع من الطرق اسم «الأصناف المساعدة». ومن الأمثلة على هذه الأصناف من داخل JRE الصنفان Arrays وCollections.
في هذا التمرين نريد أن يمتلك List طرق map() وreduce() وfilter() وغيرها. لكنه لا يمتلكها، لذا نستخدم طرقًا static.
طريقتا foldLeft وfoldRight هما دالتا «الطي»، وهو مفهوم معروف جيدًا في عالم البرمجة الوظيفية، لكنه أقل شهرة في عالم البرمجة كائنية التوجه. راجع صفحة ويكيبيديا عن الطي للاطلاع على خلفية عامة وتلميحات حول التوقيع والتنفيذ.
سجّل في Exercism لتتعلّم وتتقن Java عبر 26 مفهومًا158 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.
استمتع بمقدمة عملية إلى الاستدعاء الذاتي، واستكشف البدائل الأمرية والوظيفية لتمرين عمليات القوائم، وتعمّق في الاستدعاء الذاتي الذيلية ودوال المراكم.