एल्म - रिकॉर्ड्स

एल्म में रिकॉर्ड डेटा संरचना का उपयोग कुंजी-मूल्य जोड़े के रूप में डेटा का प्रतिनिधित्व करने के लिए किया जा सकता है। एक रिकॉर्ड का उपयोग संबंधित डेटा को व्यवस्थित करने के लिए किया जा सकता है ताकि आसान पहुंच और डेटा को अपडेट किया जा सके। एल्म रिकॉर्ड्स जावास्क्रिप्ट में वस्तुओं के समान हैं। एक रिकॉर्ड में डेटा तत्वों को फ़ील्ड के रूप में जाना जाता है।

एक रिकॉर्ड को परिभाषित करना

रिकॉर्ड को परिभाषित करने के लिए निम्नलिखित सिंटैक्स का उपयोग करें -

वाक्य - विन्यास

record_name = {fieldname1 = value1, fieldname2 = value2....fieldnameN = valueN}

एक रिकॉर्ड कई प्रकार के डेटा को स्टोर कर सकता है। एक रिकॉर्ड में फ़ील्ड नामों को एल्म पहचानकर्ता के नामकरण के लिए सामान्य नियमों के अनुरूप होना चाहिए।

रिकॉर्ड मूल्यों तक पहुँचना

किसी रिकॉर्ड में अलग-अलग फ़ील्ड्स तक पहुँचने के लिए निम्न सिंटैक्स का उपयोग करें।

वाक्य - विन्यास

record_name.fieldname

या

.fieldname record_name

चित्रण

एल्म REPL में निम्नलिखित प्रयास करें -

> company = {name="TutorialsPoint",rating=4.5}
{ name = "TutorialsPoint", rating = 4.5 } : { name : String, rating : Float }
> company.name
"TutorialsPoint" : String
> .rating company
4.5 : Float

सूची के साथ रिकॉर्ड का उपयोग करना

एक रिकॉर्ड एक सूची के अंदर संग्रहीत किया जा सकता है। रिकॉर्ड के सभी फ़ील्ड मान एक ही प्रकार के होने चाहिए।

वाक्य - विन्यास

list_name = [ {field_name1 = value1},{field_name1 = value2}]

या

list_name = [record_name1, record_name2, record_name3....record_nameN]

चित्रण

एल्म आरईपीएल में निम्नलिखित का प्रयास करें -

> [{name = "Mohtashim"},{name = "kannan"}]
[{ name = "Mohtashim" },{ name = "kannan" }] : List { name : String }
> record1 = {name = "FirstRecord"}
{ name = "FirstRecord" } : { name : String }
> record2 = {name = "SecondRecord"}
{ name = "SecondRecord" } : { name : String }
> recordList = [record1,record2]
[{ name = "FirstRecord" },{ name = "SecondRecord" }] : List { name : String }

एक रिकॉर्ड अपडेट करें

एल्म में रिकॉर्ड अपरिवर्तनीय हैं। जब कोई रिकॉर्ड अपडेट किया जाता है, तो अपडेट किए गए मानों के साथ एक नया रिकॉर्ड वापस आ जाता है। रिकॉर्ड अपडेट करते समय फ़ील्ड भिन्न प्रकार का मान रख सकती है।

वाक्य - विन्यास

{record_name | field_name1 = new_value1, field_name2 = new_value2,field_name3 = new_value3....field_nameN = new_valueN}

चित्रण

एल्म आरईपीएल में निम्नलिखित का प्रयास करें -

> record1 = {name="FirstRecord"}
{ name = "FirstRecord" } : { name : String }
> record1_updated = {record1 | name = "FirstRecordUpdate"}
{ name = "FirstRecordUpdate" } : { name : String }
> record1
{ name = "FirstRecord" } : { name : String }
> record1 == record1_updated
False : Bool

चित्रण

निम्न उदाहरण एक रिकॉर्ड के कई क्षेत्रों को अद्यतन करता है। एल्म आरईपीएल में निम्नलिखित का प्रयास करें -

> record3 = {a = 1,b = 2,c = 3,d = 4,e = 5}
{ a = 1, b = 2, c = 3, d = 4, e = 5 }
: { a : number, b : number1, c : number2, d : number3, e : number4 }
> record4 = {record3 | d=400 ,e=500}
{ a = 1, b = 2, c = 3, d = 400, e = 500 }
: { a : number2, b : number3, c : number4, d : number, e : number1 }
>

प्रकार उर्फ

एक रिकॉर्ड के लिए उपनाम अन्य स्कीमा को परिभाषित करता है। दूसरे शब्दों में, एक प्रकार उर्फ ​​परिभाषित करता है कि कौन से क्षेत्र रिकॉर्ड स्टोर कर सकते हैं और इन क्षेत्रों का मूल्य किस प्रकार का स्टोर कर सकता है। इसलिए, प्रोग्रामर मूल्यों को निर्दिष्ट करते समय किसी भी विशिष्ट विशेषता को याद करने की गलती नहीं करेगा।

वाक्य - विन्यास

type alias alias_name = {field_name1:data_type,field_name2:data_type,....field_nameN:data_type}

चित्रण

एल्म आरईपीएल में निम्नलिखित को निष्पादित करें -

> type alias Developer = { name:String,location:String,age:Int}
> dev1 = Developer "kannan" "Mumbai" 20
{ name = "kannan", location = "Mumbai", age = 20 } : Repl.Developer
> dev2 = Developer "mohtashim" "hyderabad" 20
{ name = "mohtashim", location = "hyderabad", age = 20 } : Repl.Developer
>

अब यदि आप स्थान और आयु लिखना भूल जाते हैं, तो कथन एक फ़ंक्शन देता है, जिसमें स्थान और आयु क्षेत्रों के लिए इनपुट पैरामीटर होते हैं।

> dev3 = Developer "Bhagavati"
<function> : String -> Int -> Repl.Developer
We can invoke the function as shown below and pass to it the values for location and age fields.
> dev3 "Pune" 25
{ name = "Bhagavati", location = "Pune", age = 25 } : Repl.Developer