المسارات
/
Elm
Elm
/
التمارين
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

تمرين تعلّمي

مقدمة

المصفوفات

المصفوفة List في Elm هي مجموعة غير قابلة للتغيير من صفر أو أكثر من القيم من النوع نفسه.

يمكن تعريف المصفوفات على النحو التالي:

empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]

أكثر الأساليب شيوعًا لإضافة عنصر إلى مصفوفة هو استخدام العامل :: (cons):

twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]

يتم التعامل مع المصفوفات بواسطة دوال وعوامل معرَّفة في وحدة List أو عبر مطابقة الأنماط

describe : List String -> String
describe list =
    case list of
        [] ->
            "Empty list"

        [ "hello" ] ->
            "Singleton list with: hello"

        x :: xs ->
            "Non-empty list with head: " ++ x

describe []                   --> "Empty list"
describe [ "hello" ]          --> "Singleton list with: hello"
describe [ "hello", "world" ] --> "Non-empty list with head: hello"

التعليمات

في هذا التمرين ستكتب كودًا لتتبّع مصفوفة لغات البرمجة التي تريد تعلّمها على Exercism. لديك ست مهام، وكلها ستتضمن التعامل مع المصفوفات.

1. أنشئ مصفوفة جديدة

لتتبّع اللغات التي تريد تعلّمها، ستحتاج إلى إنشاء مصفوفة جديدة. عرّف الثابت newList الذي يحتوي على مصفوفة جديدة فارغة.

newList
    --> []

2. عرّف مصفوفة موجودة

حاليًا، لديك ورقة مكتوب عليها اللغات التي تريد تعلّمها: Elm وClojure وHaskell. عرّف الثابت existingList لتمثيل هذه المصفوفة.

existingList
    --> [ "Elm", "Clojure", "Haskell" ]

3. أضف لغة جديدة إلى مصفوفة

بينما تستكشف Exercism وتجد لغات أكثر إثارة للاهتمام، تريد إضافتها إلى مصفوفتك. نفّذ الدالة addLanguage لإضافة لغة جديدة إلى بداية مصفوفتك.

addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
    --> [ "TypeScript", "JavaScript", "CoffeeScript" ]

4. احسب عدد اللغات في المصفوفة

عدّ اللغات يدويًا أمر غير مريح. نفّذ الدالة countLanguages لعدّ عدد اللغات في مصفوفتك.

countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
    --> 4

5. اعكس ترتيب المصفوفة

في مرحلة ما، تدرك أن ترتيب مصفوفتك معكوس فعلًا! نفّذ الدالة reverseList لعكس ترتيب مصفوفتك.

reverseList [ "Prolog", "C", "Idris", "Assembly" ]
    --> [ "Assembly", "Idris", "C", "Prolog" ]

6. تحقق مما إذا كانت المصفوفة مثيرة

رغم أنك تحب جميع اللغات، فإن Elm له مكانة خاصة في قلبك. لذلك، تتحمس كثيرًا لمصفوفة لغات إذا:

  • كان العنصر الأول في المصفوفة هو Elm.
  • أو كان العنصر الثاني في المصفوفة هو Elm وتحتوي المصفوفة على ثلاث لغات أو أقل.

نفّذ الدالة excitingList للتحقق مما إذا كانت مصفوفة اللغات مثيرة:

excitingList [ "Nim", "Elm" ]
    --> True
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Elm Exercism

مستعد لبدء Tracks on Tracks on Tracks؟

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