مسیرها
/
Elm
Elm
/
تمرین‌ها
/
ترک روی ترک روی ترک
ترک روی ترک روی ترک

ترک روی ترک روی ترک

تمرین یادگیری

مقدمه

لیست

یک 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

آماده‌اید ترک روی ترک روی ترک را شروع کنید؟

در Exercism ثبت‌نام کنید تا Elm را همراه با 28 مفهوم110 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.