एल्म - कार्य

कार्य एक एल्म कार्यक्रम के निर्माण खंड हैं। एक फ़ंक्शन किसी विशिष्ट कार्य को करने के लिए कथनों का एक समूह है।

फ़ंक्शंस प्रोग्राम को कोड के तार्किक ब्लॉकों में व्यवस्थित करते हैं। एक बार परिभाषित करने के बाद, फ़ंक्शंस को एक्सेस कोड कहा जा सकता है। यह कोड को पुन: प्रयोज्य बनाता है। इसके अलावा, फ़ंक्शन प्रोग्राम के कोड को पढ़ना और बनाए रखना आसान बनाते हैं।

किसी फ़ंक्शन का उपयोग करने के लिए चरण

एक फ़ंक्शन का उपयोग करने के तीन चरण हैं -

समारोह घोषणा

एक फंक्शन डिक्लेरेशन कंपाइलर को फंक्शन के नाम, रिटर्न टाइप और पैरामीटर्स के बारे में बताता है। फ़ंक्शन घोषित करने का सिंटैक्स नीचे दिया गया है -

fn_name:data_type_of_the_parameters ->return_type

फ़ंक्शन की घोषणा निम्नलिखित निर्दिष्ट करती है -

  • समारोह का नाम।

  • डेटा प्रकार के पैरामीटर। यह वैकल्पिक है क्योंकि फ़ंक्शन में पैरामीटर हो सकते हैं या नहीं भी हो सकते हैं।

  • मान का डेटा प्रकार, जो फ़ंक्शन वापस आ जाएगा। एल्म में फ़ंक्शंस को हमेशा एक मूल्य वापस करना चाहिए क्योंकि एल्म एक कार्यात्मक प्रोग्रामिंग भाषा है। अन्य प्रोग्रामिंग भाषाओं के कार्यों के विपरीत, एल्म फ़ंक्शन किसी मान को वापस करने के लिए रिटर्न कीवर्ड का उपयोग नहीं करते हैं।

फंक्शन परिभाषा या फंक्शन कार्यान्वयन

एक फ़ंक्शन परिभाषा फ़ंक्शन का वास्तविक निकाय प्रदान करती है। एक फ़ंक्शन परिभाषा निर्दिष्ट करती है कि एक विशिष्ट कार्य कैसे किया जाएगा। किसी फ़ंक्शन को परिभाषित करने का सिंटैक्स नीचे दिया गया है -

fn_name parameter1 parameter2 = statements

एक समारोह में आमंत्रित करना या कॉल करना

एक फ़ंक्शन को इसे निष्पादित करने के लिए बुलाया जाना चाहिए। किसी फ़ंक्शन को कॉल करने का सिंटैक्स नीचे दिया गया है -

fn_name parameter1 parameter2

चित्रण

निम्नलिखित कोड एक फ़ंक्शन अभिवादन को परिभाषित करता है। फ़ंक्शन एक स्ट्रिंग "हैलो" देता है।

> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String

परिमेय कार्य

पैरामीटर एक फ़ंक्शन के मानों को पारित करने के लिए एक तंत्र है। फ़ंक्शन इनवोकेशन के समय पैरामीटर के मान फ़ंक्शन में पास किए जाते हैं।

चित्रण १

निम्न उदाहरण एक फ़ंक्शन को परिभाषित करता है fn_add । फ़ंक्शन दो संख्याओं को पैरामीटर के रूप में स्वीकार करता है और उनकी राशि लौटाता है। एल्म आरईपीएल में निम्नलिखित का प्रयास करें -

> fn_add x y = x+y
<function> : number -> number -> number
> fn_add 10 20
30 : number

चित्रण २

निम्न उदाहरण एक फ़ंक्शनहेल्लो को परिभाषित करता है। SayHello फ़ंक्शन पैरामीटर के रूप में स्ट्रिंग मान को स्वीकार करता है और वापस करता है।

> sayHello name = "Hello "++ name
<function> : String -> String
> sayHello "Tutorialspoint"
"Hello Tutorialspoint" : String
>

पाइप ऑपरेटर

पाइप ऑपरेटर को समझने के लिए |>, आइए एक उदाहरण पर विचार करें जहां हमारे पास अलग-अलग तारों की सूची है ["a", "b", "c"] । अब हमें एक ही तार की आवश्यकता है, जिसे अलग किया जाता है -

निम्न उदाहरण दिखाता है कि कैसे String.join के साथ ऐसा करना है

> String.join "-" ["a","b","c","d","e","f"]
"a-b-c-d-e-f" : String

पाइप ऑपरेटर का उपयोग करके एक ही क्रिया की जा सकती है |> पाइप ऑपरेटर का उपयोग कई फ़ंक्शन कॉल को चेन करने के लिए किया जा सकता है।

> ["a","b","c","d","e","f"] |> String.join "-"
"a-b-c-d-e-f" : String
> ["a","b","c","d","e","f"] |> List.reverse |> String.join "-"
"f-e-d-c-b-a" : String

पहले उदाहरण में, हम विधि में शामिल होने के लिए सूची का अनुसरण कर रहे हैं। दूसरे मामले में, एक ही सूची को रिवर्स फ़ंक्शन के लिए पाइप किया जाता है और उसके बाद जुड़ने के लिए पाइप किया जाता है। इसलिए, सूची को उलटा और प्रदर्शित किया गया है।