الساعة

الساعة

متوسط

التعليمات

نفّذ ساعة تتعامل مع الأوقات بدون تواريخ.

ينبغي أن تكون قادرًا على إضافة دقائق إليها وطرحها منها.

ينبغي أن تتساوى ساعتان تمثلان الوقت نفسه.

تلميحات

إنها ساعة بنظام 24 ساعة، تمتد من "00:00" إلى "23:59".

لإكمال هذا التمرين، عليك تعريف نوع البيانات Clock، وإضافة نسخة Eq، وتنفيذ الدوال:

  • addDelta
  • fromHourMin
  • toString

تُضيف addDelta مدة زمنية، تُعبَّر عنها بالساعات والدقائق، إلى وقت معطى ممثَّل بنسخة من Clock.

تأخذ fromHourMin ساعة ودقيقة، وتُرجع نسخة من Clock بتلك الساعات والدقائق.

تأخذ toString نسخة من Clock وتُرجع سلسلة نصية تمثّل الساعة، بتنسيق مبطَّن بالأصفار مثل "08:03" أو "22:35".

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

إذا احتجت مساعدة في البدء مع الأنواع، فألقِ نظرة على:


المصدر

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

مستعد لبدء الساعة؟

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