مسیرها
/
Gleam
Gleam
/
تمرین‌ها
/
عشق دبیرستانی
عشق دبیرستانی

عشق دبیرستانی

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

مقدمه

عملگر پایپ

به عملگر |> عملگر پایپ می‌گویند. می‌توان با آن فراخوانی توابع را به هم زنجیره کرد، به این شکل که مقدار برگردانده‌شده از فراخوانی تابع پیشین به فراخوانی تابع بعدی فرستاده می‌شود.

"hello"
|> string.uppercase
|> string.append("?!")
// -> "HELLO?!"

کد بالا معادل کد زیر است:

string.append(string.uppercase("hello"), "?!")

عملگر پایپ مقدار را یا به عنوان اولین آرگومان به فراخوانی تابع می‌فرستد یا به عنوان تنها آرگومان به یک فراخوانی تازه. در هر حالت، شکلی را انتخاب می‌کند که نوع درست را داشته باشد.

100
|> function_that_takes_two_arguments(1)

// Is equivalent to
function_that_takes_two_arguments(100, 1)
100
|> function_that_returns_a_function(1)

// Is equivalent to
function_that_returns_a_function(1)(100)

گاهی می‌خواهیم مقدار را در جایگاه دیگری بفرستیم. در این حالت می‌توان از «جانگهدار» _ استفاده کرد تا نشان دهد مقدار باید کجا قرار بگیرد.

100
|> some_function(1, _, 2)

دستورالعمل‌ها

در این تمرین، به عاشقان دبیرستانی کمک می‌کنید تا عشقشان را در شبکه‌های اجتماعی با ساختن یک قلب ASCII از حروف اول اسمشان ابراز کنند:

     ******       ******
   **      **   **      **
 **         ** **         **
**            *            **
**                         **
**     J. K.  +  M. B.     **
 **                       **
   **                   **
     **               **
       **           **
         **       **
           **   **
             ***
              *

1. حرف اول اسم را به دست آورید

تابع first_letter را پیاده‌سازی کنید. باید یک اسم بگیرد و حرف اولش را برگرداند. باید هر فاصله‌ی اضافی را از اسم پاک کند.

first_letter("Jane")
// -> "J"

2. حرف اول را به صورت حرف اختصاری درآورید

تابع initial را پیاده‌سازی کنید. باید یک اسم بگیرد و حرف اولش را بزرگ، و به دنبال آن یک نقطه، برگرداند. حتماً از first_letter که در گام قبل تعریف کردید دوباره استفاده کنید.

initial("Robert")
// -> "R."

3. نام کامل را به اسم کوچک و نام خانوادگی تقسیم کنید

تابع initials را پیاده‌سازی کنید. باید یک نام کامل بگیرد که از یک اسم کوچک و یک نام خانوادگی جدا شده با یک فاصله تشکیل شده است، و حروف اول را برگرداند. حتماً از initial که در گام قبل تعریف کردید دوباره استفاده کنید.

initials("Lance Green")
// -> "L. G."

4. حروف اول را داخل قلب قرار دهید

تابع pair را پیاده‌سازی کنید. باید دو نام کامل بگیرد و حروف اول را داخل یک قلب ASCII برگرداند. حتماً از initials که در گام قبل تعریف کردید دوباره استفاده کنید.

pair("Blake Miller", "Riley Lewis")
// -> "
//      ******       ******
//    **      **   **      **
//  **         ** **         **
// **            *            **
// **                         **
// **     B. M.  +  R. L.     **
//  **                       **
//    **                   **
//      **               **
//        **           **
//          **       **
//            **   **
//              ***
//               *
// "
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Gleam Exercism

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

در Exercism ثبت‌نام کنید تا Gleam را همراه با 33 مفهوم122 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.