المسارات
/
Haskell
Haskell
/
التمارين
/
المدرسة الابتدائية
المدرسة الابتدائية

المدرسة الابتدائية

سهل

التعليمات

بالنظر إلى أسماء الطلاب والصف الذي يدرس فيه كل منهم، أنشئ قائمة طلاب المدرسة.

في النهاية، ينبغي أن تكون قادرًا على:

  • إضافة اسم طالب إلى قائمة الطلاب الخاصة بصف معيّن
    • "أضف Jim إلى الصف 2."
    • "حسنًا."
  • الحصول على قائمة بجميع الطلاب المسجّلين في صف معيّن
    • "أي الطلاب في الصف 2؟"
    • "ليس لدينا سوى Jim في الوقت الحالي."
  • الحصول على قائمة مرتّبة بجميع الطلاب في جميع الصفوف. ينبغي ترتيب الصفوف بحسب 1، 2، 3، وهكذا، وينبغي ترتيب الطلاب داخل الصف الواحد أبجديًا بحسب الاسم.
    • "من المسجّل في المدرسة الآن؟"
    • "دعني أفكر. لدينا Anna وBarb وCharlie في الصف 1، وAlex وPeter وZoe في الصف 2، وJim في الصف 5. إذن الجواب هو: Anna وBarb وCharlie وAlex وPeter وZoe وJim"

لاحظ أن جميع طلابنا لهم اسم واحد فقط (إنها بلدة صغيرة، فماذا تريد؟)، ولا يمكن إضافة الطالب نفسه أكثر من مرة إلى صف معيّن أو إلى قائمة الطلاب. بل إنه عندما يحاول اختبار إضافة الطالب نفسه أكثر من مرة، ينبغي أن يشير تنفيذك إلى أن هذا غير صحيح.

تلميحات

لإكمال هذا التمرين، تحتاج إلى إنشاء نوع البيانات School وتنفيذ الدوال التالية:

  • add
  • empty
  • grade
  • sorted

ستجد إعلان بيانات وهميًا وتوقيعات الأنواع في مكانها بالفعل، لكن الأمر متروك لك لتعريف الدوال وإنشاء نوع بيانات ذي معنى، أو newtype، أو مرادف نوع.


المصدر

جلسة برمجة ثنائية مع Phil Battos في gSchool
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Haskell Exercism

مستعد لبدء المدرسة الابتدائية؟

سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.