|> অপারেটরটিকে পাইপ অপারেটর বলা হয়। এটি দিয়ে পরপর ফাংশন কলগুলোকে এমনভাবে জুড়ে দেওয়া যায়, যাতে আগের ফাংশন কল যে মানটি রিটার্ন করে, সেটি পরের ফাংশন কলে পাস হয়।
"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. **
** **
** **
** **
** **
** **
** **
***
*
first_letter ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি নাম নেবে এবং তার প্রথম অক্ষর রিটার্ন করবে। এটি নাম থেকে অপ্রয়োজনীয় যেকোনো হোয়াইটস্পেস পরিষ্কার করবে।
first_letter("Jane")
// -> "J"
initial ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি নাম নেবে এবং তার প্রথম অক্ষরটি বড় হাতের অক্ষরে, তারপর একটি ডট দিয়ে রিটার্ন করবে। আগের ধাপে আপনি যে first_letter ডিফাইন করেছেন, সেটি পুনরায় ব্যবহার করতে ভুলবেন না।
initial("Robert")
// -> "R."
initials ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি পুরো নাম নেবে, যেখানে একটি প্রথম নাম ও একটি শেষ নাম একটি স্পেস দিয়ে আলাদা করা থাকে, এবং আদ্যক্ষরগুলো রিটার্ন করবে। আগের ধাপে আপনি যে initial ডিফাইন করেছেন, সেটি পুনরায় ব্যবহার করতে ভুলবেন না।
initials("Lance Green")
// -> "L. G."
pair ফাংশনটি ইমপ্লিমেন্ট করুন। এটি দুটি পুরো নাম নেবে এবং একটি ASCII হার্টের ভিতরে আদ্যক্ষরগুলো রিটার্ন করবে। আগের ধাপে আপনি যে initials ডিফাইন করেছেন, সেটি পুনরায় ব্যবহার করতে ভুলবেন না।
pair("Blake Miller", "Riley Lewis")
// -> "
// ****** ******
// ** ** ** **
// ** ** ** **
// ** * **
// ** **
// ** B. M. + R. L. **
// ** **
// ** **
// ** **
// ** **
// ** **
// ** **
// ***
// *
// "
Exercism-এ সাইন আপ করুন, Gleam ট্র্যাকের 33টি কনসেপ্ট122টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।