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

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

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

مقدمه

رشته

رشته‌ها در Elixir با گیومه‌های دوتایی مشخص می‌شوند و با UTF-8 کدگذاری شده‌اند:

"Hi!"

رشته‌ها را می‌توان با عملگر <>/2 به هم چسباند:

"Welcome to" <> " " <> "New York"
# => "Welcome to New York"

رشته‌ها در Elixir از درج با روش نگارش #{} پشتیبانی می‌کنند:

"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"

برای گذاشتن کاراکتر خط جدید در یک رشته، از دنباله‌ی فرار \n استفاده کنید:

"1\n2\n3\n"

برای کار راحت با متن‌هایی که خط جدید زیادی دارند، در عوض از روش نوشتن heredoc با سه گیومه‌ی دوتایی استفاده کنید:

"""
1
2
3
"""

Elixir توابع زیادی برای کار با رشته‌ها در ماژول String ارائه می‌دهد.

عملگر پایپ

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

"hello"
|> String.upcase()
|> Kernel.<>("?!")

# => "HELLO?!"

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

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

❤-------------------❤
|  J. K.  +  M. B.  |
❤-------------------❤

1. اولین حرف اسم را بگیرید

تابع HighSchoolSweetheart.first_letter/1 را پیاده‌سازی کنید. این تابع باید یک اسم بگیرد و اولین حرف آن را برگرداند. همچنین باید هر فضای خالی اضافی را از اسم پاک کند.

HighSchoolSweetheart.first_letter("Jane")
# => "J"

2. اولین حرف را به‌شکل حرف اختصاری بنویسید

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

HighSchoolSweetheart.initial("Robert")
# => "R."

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

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

HighSchoolSweetheart.initials("Lance Green")
# => "L. G."

4. حروف اول را داخل جعبه‌ی ASCII قرار دهید

تابع HighSchoolSweetheart.pair/2 را پیاده‌سازی کنید. این تابع باید دو اسم کامل بگیرد و حروف اول را داخل یک جعبه‌ی ASCII برگرداند. لازم نیست خودتان جعبه را رسم کنید؛ از جعبه‌ای که در کامنت کد آمده استفاده کنید. حتماً از تابع HighSchoolSweetheart.initials/1 که در گام قبل تعریف کردید دوباره استفاده کنید.

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

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

در Exercism ثبت‌نام کنید تا Elixir را همراه با 58 مفهوم168 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.