স্কালাতে রেঞ্জ (Range) একটি জনপ্রিয় এবং শক্তিশালী টুল, যা সিকোয়েন্স (অথবা সিরিজ) তৈরি করতে ব্যবহৃত হয়। রেঞ্জের মাধ্যমে আপনি সহজে নির্দিষ্ট পরিসরের মধ্যে সিকোয়েন্স তৈরি করতে পারেন এবং সেই সিকোয়েন্সের উপাদানগুলোর উপর বিভিন্ন অপারেশন প্রয়োগ করতে পারেন।
১. রেঞ্জ ডিফাইন করা (Defining a Range):
স্কালাতে একটি রেঞ্জ সাধারণভাবে start (শুরু), end (শেষ), এবং step (ধাপ) দিয়ে ডিফাইন করা হয়। এর মাধ্যমে আপনি একটি নির্দিষ্ট পরিসরের মধ্যে একটি সিকোয়েন্স তৈরি করতে পারেন।
উদাহরণ:
val range1 = 1 to 5 // 1, 2, 3, 4, 5
val range2 = 1 until 5 // 1, 2, 3, 4 (5 excluded)to: এই রেঞ্জটি অন্তর্ভুক্ত করে শেষ মান (যেমন,1 to 5রেঞ্জে ৫ অন্তর্ভুক্ত হবে)।until: এই রেঞ্জটি শেষ মানটি অন্তর্ভুক্ত না করে (যেমন,1 until 5রেঞ্জে ৫ অন্তর্ভুক্ত হবে না)।
২. ধাপ নির্ধারণ (Defining Step):
রেঞ্জে ধাপ (step) নির্ধারণ করে আপনি সিকোয়েন্সে কেমন ইন্টারভাল চান তা নির্ধারণ করতে পারেন। এটি একটি অপশনাল প্যারামিটার এবং আপনি একটি মান দিতে পারেন।
উদাহরণ:
val rangeWithStep = 1 to 10 by 2 // 1, 3, 5, 7, 9এখানে, by 2 দ্বারা প্রতিটি উপাদানের মধ্যে ২ সংখ্যার ব্যবধান রয়েছে। অর্থাৎ, সিকোয়েন্সের উপাদানগুলি ১ থেকে শুরু হয়ে ১০ পর্যন্ত যাবে, কিন্তু প্রতি দুটি সংখ্যার মধ্যে একটি অন্তর থাকবে।
৩. রেঞ্জের সাথে কাজ করা (Working with Ranges):
রেঞ্জ থেকে সিকোয়েন্স তৈরি করার পর আপনি ঐ সিকোয়েন্সের উপাদানগুলোর উপর বিভিন্ন অপারেশন প্রয়োগ করতে পারেন, যেমন map, filter, foreach, ইত্যাদি।
উদাহরণ:
val range = 1 to 5
// `map` ব্যবহার করে প্রতি উপাদান দ্বিগুণ করা
val doubledRange = range.map(x => x * 2) // List(2, 4, 6, 8, 10)
println(doubledRange)
// `filter` ব্যবহার করে মান 3 এর চেয়ে বড় উপাদানগুলো ফিল্টার করা
val filteredRange = range.filter(x => x > 3) // List(4, 5)
println(filteredRange)
// `foreach` ব্যবহার করে প্রতিটি উপাদান প্রিন্ট করা
range.foreach(println)৪. রেঞ্জের সাথে অ্যারেঞ্জমেন্ট (Generating Sequences):
রেঞ্জের মাধ্যমে আপনি সিকোয়েন্স (Sequence) তৈরি করতে পারেন। স্কালাতে Range একটি ইমিউটেবল ডেটা স্ট্রাকচার যা পরিসরের উপাদানগুলো সংরক্ষণ করে।
উদাহরণ:
val range = 1 to 5
val sequence = range.toList // List(1, 2, 3, 4, 5)
println(sequence)এখানে, range.toList ব্যবহার করে একটি List তৈরি করা হয়েছে।
৫. রেঞ্জের মাধ্যমে লুপ (Looping with Range):
রেঞ্জের সাহায্যে লুপ ব্যবহার করা খুবই সহজ। আপনি for লুপের মাধ্যমে একটি রেঞ্জের উপাদানগুলোর উপর কার্যকরী অপারেশন প্রয়োগ করতে পারেন।
উদাহরণ:
for (i <- 1 to 5) {
println(s"Value: $i")
}এখানে, 1 to 5 রেঞ্জটি ১ থেকে ৫ পর্যন্ত সিকোয়েন্স তৈরি করবে এবং প্রতিটি মান প্রিন্ট করবে।
৬. ডাউনওয়ার্ড রেঞ্জ (Descending Range):
রেঞ্জের মধ্যে যদি আপনি ডাউনওয়ার্ড সিকোয়েন্স চান, অর্থাৎ একটি বড় সংখ্যার থেকে ছোট সংখ্যার দিকে রেঞ্জ তৈরি করতে চান, তবে to রেঞ্জ ব্যবহার করতে পারেন এবং ধাপের মান নেগেটিভ করতে হবে।
উদাহরণ:
val descendingRange = 10 to 1 by -1 // 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
println(descendingRange)এখানে, by -1 দ্বারা রেঞ্জটি ছোট সংখ্যার দিকে কমে যাবে।
৭. রেঞ্জের ব্যবহার পরিসরের মধ্যে সংখ্যার গণনা (Counting within a range):
রেঞ্জের মধ্যে উপাদানগুলো গণনা করা এবং পরিসরের নির্দিষ্ট গুণাবলী বের করা সহজ। রেঞ্জের সাহায্যে আপনি যে কোনও পরিসরের মধ্যে গণনা বা শর্ত নির্ধারণ করতে পারেন।
উদাহরণ:
val range = 1 to 100
// ৫ এর গুণিতক খুঁজে বের করা
val multiplesOfFive = range.filter(x => x % 5 == 0) // List(5, 10, 15, ..., 100)
println(multiplesOfFive)এখানে, filter ব্যবহার করে ৫ এর গুণিতকগুলির সিকোয়েন্স তৈরি করা হয়েছে।
সারাংশ:
রেঞ্জ (Range) স্কালাতে একটি শক্তিশালী এবং সুবিধাজনক উপাদান যা সিকোয়েন্স তৈরি করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি সহজে সংখ্যার পরিসর তৈরি করতে পারেন, ধাপ নির্ধারণ করতে পারেন এবং সেই পরিসরের উপাদানগুলোর উপর বিভিন্ন অপারেশন প্রয়োগ করতে পারেন। to, until, by, map, filter, এবং অন্যান্য ফাংশনাল অপারেশন ব্যবহার করে স্কালাতে রেঞ্জের উপাদানগুলোকে সহজে ম্যানিপুলেট করা যায়।
Read more