أنت تعمل في شركة لبث الموسيقى.
أوكلت إليك مهمة إنشاء ميزة قوائم التشغيل في تطبيق مشغل الموسيقى الخاص بك.
اكتب نموذجًا أوليًا لتطبيق مشغّل الموسيقى.
في هذا النموذج الأولي، تُمثَّل كل أغنية برقم ببساطة. بمعطى نطاق من الأرقام (معرّفات الأغاني)، أنشئ قائمة مرتبطة أحادية الاتجاه.
وبمعطى قائمة مرتبطة أحادية الاتجاه، ينبغي أن تكون قادرًا على عكس ترتيب القائمة لتشغيل الأغاني بالترتيب المعاكس.
القائمة المرتبطة بنية بيانات أساسية في علم الحاسوب، وكثيرًا ما تُستخدم في تنفيذ بنى بيانات أخرى.
أبسط أنواع القوائم المرتبطة هي القائمة المرتبطة أحادية الاتجاه. وهذا يعني أن كل عنصر (أو "عقدة") يحتوي على بيانات، إلى جانب شيء يشير إلى العقدة التالية في القائمة.
إذا أردت التعمق أكثر في القوائم المرتبطة، فاطّلع على هذا المقال الذي يشرحها برسومات جميلة.
لإكمال هذا التمرين، عليك إنشاء نوع البيانات LinkedList، وتنفيذ الدوال التالية:
datumfromListisNilnewnextnilreverseLinkedListtoListستجد إعلان بيانات وهميًا وتوقيعات الأنواع موجودة بالفعل، لكن الأمر متروك لك لتعريف الدوال وإنشاء نوع بيانات ذي معنى، أو newtype، أو مرادف نوع.
سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.