Record এর ধারণা এবং প্রয়োগ
Elm ভাষায়, Record হল একটি অবজেক্ট বা ডেটা স্ট্রাকচার যা একটি নির্দিষ্ট নামযুক্ত ডেটা ধারণ করতে পারে। একটি Record হলো একাধিক ফিল্ড (fields) ধারণকারী একটি কাস্টম ডেটা টাইপ। প্রতিটি ফিল্ডের একটি নাম থাকে এবং একটি মান থাকে যা ফিল্ডের সাথে সম্পর্কিত। Record ব্যবহৃত হয় যখন আপনি একাধিক সম্পর্কিত তথ্য একত্রিত করতে চান।
Elm-এ Record এর মাধ্যমে আপনি ডেটার বিভিন্ন ফিল্ড বা উপাদান সংজ্ঞায়িত করতে পারেন এবং একে একটি সম্পূর্ণ কাঠামো (structure) হিসেবে ব্যবহার করতে পারেন।
১. Record এর মৌলিক ধারণা
একটি Record একাধিক named fields ধারণ করে। এটি অনেকটা অবজেক্টের মতো, যেখানে আপনি ফিল্ডের নামের মাধ্যমে ডেটা অ্যাক্সেস করতে পারেন।
Sintax:
type alias RecordName =
{ fieldName1 : Type1
, fieldName2 : Type2
, fieldName3 : Type3
}এখানে, RecordName হচ্ছে Record এর নাম এবং {} ব্র্যাকেটের মধ্যে ফিল্ডের নাম এবং তাদের টাইপ উল্লেখ করা হয়।
উদাহরণ:
type alias Person =
{ name : String
, age : Int
, isEmployed : Bool
}এখানে, Person একটি Record, যার তিনটি ফিল্ড রয়েছে:
name: স্ট্রিং টাইপেরage: পূর্ণসংখ্যা (Integer) টাইপেরisEmployed: বুলিয়ান টাইপের
এটি একটি Person এর ডেটা ধারণ করার জন্য তৈরি করা হয়েছে, যার নাম, বয়স এবং চাকরি করার অবস্থা রয়েছে।
২. Record তৈরি করা
এখন আপনি যে কোনো Record এর মান তৈরি করতে পারেন। একটি Record তৈরি করতে, আপনাকে সব ফিল্ডের মান প্রদান করতে হবে।
উদাহরণ:
person1 : Person
person1 =
{ name = "Alice"
, age = 30
, isEmployed = True
}এখানে, person1 একটি Person টাইপের Record, যার মধ্যে Alice এর নাম, ৩০ বছর বয়স এবং চাকরি করা অবস্থা প্রদান করা হয়েছে।
৩. Record এ ফিল্ড এক্সেস করা
একটি Record এর ফিল্ড এক্সেস করার জন্য, ফিল্ডের নাম ব্যবহার করতে হয়। ফিল্ডের নামের সাথে পিরিয়ড (.) চিহ্ন ব্যবহার করে আপনি ডেটা এক্সেস করতে পারেন।
উদাহরণ:
nameOfPerson = person1.name -- ফলাফল: "Alice"এখানে person1.name দ্বারা Alice পাওয়া যাবে, কারণ এটি person1 Record এর name ফিল্ড।
৪. Record এ ফিল্ড পরিবর্তন করা
Elm-এ Record একবার তৈরি হওয়ার পর তার মান immutable (অপরিবর্তনীয়)। তবে, আপনি নতুন একটি Record তৈরি করে ফিল্ডের মান পরিবর্তন করতে পারেন। এটি | (pipe) অপারেটর দিয়ে করা হয়।
উদাহরণ:
updatedPerson : Person
updatedPerson =
{ person1 | age = 31 }এখানে, updatedPerson নামক একটি নতুন Record তৈরি করা হয়েছে, যা person1 এর মতো, তবে age ফিল্ডটি পরিবর্তিত হয়ে 31 হয়েছে। এখানে | অপারেটরটি person1 থেকে নতুন Record তৈরির জন্য ব্যবহৃত হয়েছে, যেখানে শুধু age ফিল্ডের মান পরিবর্তন করা হয়েছে।
৫. Record এর টাইপ অ্যালিয়াস (Type Alias)
Elm-এ type alias ব্যবহৃত হয় Record টাইপগুলো সংজ্ঞায়িত করতে। type alias দিয়ে Record-এর ধরন নির্ধারণ করা হয়, যাতে আপনি সেই ডেটা স্ট্রাকচারকে সহজে ব্যবহার করতে পারেন।
উদাহরণ:
type alias Address =
{ street : String
, city : String
, zipCode : String
}
type alias Person =
{ name : String
, age : Int
, address : Address
}এখানে, Address একটি Record যেটিতে street, city, এবং zipCode ফিল্ড রয়েছে। Person নামক Record টাইপে একটি Address রয়েছে।
৬. Record এর মধ্যে Nested Record ব্যবহার
যেহেতু Record আরেকটি Record ধারণ করতে পারে, তাই একটি Record এর মধ্যে অন্য Record সং嵣যোগ (nest) করা সম্ভব। এটি বড় এবং জটিল ডেটা স্ট্রাকচার তৈরি করতে সাহায্য করে।
উদাহরণ:
type alias Company =
{ name : String
, address : Address
, employees : List Person
}এখানে, Company Record এর মধ্যে একটি Address Record এবং একটি List of Person রেকর্ড আছে। এটি বড় ডেটা স্ট্রাকচারের মধ্যে সম্পর্কিত ডেটা সংরক্ষণ করতে সহায়ক।
৭. Record এর কিছু সাধারণ ব্যবহারের উদাহরণ
উদাহরণ ১: Book Record
type alias Book =
{ title : String
, author : String
, year : Int
}
book1 : Book
book1 =
{ title = "The Elm Guide"
, author = "John Doe"
, year = 2023
}এখানে Book নামক Record এর মধ্যে বইয়ের শিরোনাম, লেখক এবং প্রকাশের বছর রয়েছে।
উদাহরণ ২: Student Record
type alias Student =
{ name : String
, grade : Int
, passed : Bool
}এখানে Student Record এ শিক্ষার্থীর নাম, গ্রেড এবং পরীক্ষায় উত্তীর্ণ হয়েছে কিনা (বুলিয়ান মান) থাকে।
উপসংহার
Record Elm এর একটি অত্যন্ত গুরুত্বপূর্ণ এবং শক্তিশালী ডেটা স্ট্রাকচার, যা একাধিক সম্পর্কিত তথ্য ধারণ করতে সাহায্য করে। এটি ফাংশনাল প্রোগ্রামিং ভাষায় ডেটা মডেলিংয়ের জন্য একটি মূল উপাদান হিসেবে কাজ করে। Record ব্যবহার করে আপনি named fields ধারণ করতে পারেন, যা কোডের পাঠযোগ্যতা এবং রক্ষণাবেক্ষণ ক্ষমতা বাড়ায়। Nested Record ব্যবহারের মাধ্যমে আপনি আরও জটিল এবং সম্পর্কিত ডেটা একত্রিত করতে পারেন। Elm এর immutable প্রকৃতি নিশ্চিত করে যে, একবার Record তৈরি হলে সেটি আর পরিবর্তন করা যাবে না, তবে আপনি নতুন Record তৈরি করে পুরানো রেকর্ড থেকে মান পরিবর্তন করতে পারেন।
Read more