एक कॉन्स्टेंट वैल्यू name = expression के रूप में परिभाषित की जाती है। ध्यान रखिए कि Elm में परिभाषाओं के अलावा बाकी सब कुछ एक्सप्रेशन होता है।
five = 5
six = 3 + 3
फंक्शन name parameters... = expression के रूप में बनाए जाते हैं, जहाँ पैरामीटर को केवल स्पेस से अलग किया जाता है।
add number1 number2 = number1 + number2
फंक्शन को कॉल करना भी एक एक्सप्रेशन ही होता है। इसके लिए फंक्शन का नाम लिखा जाता है और उसके हर पैरामीटर के लिए आर्गुमेंट पास किए जाते हैं, जिन्हें स्पेस से अलग किया जाता है, ठीक वैसे ही जैसे फंक्शन बनाते समय किया जाता है।
five = add 2 3
किसी एक्सप्रेशन के मूल्यांकन का क्रम तय करने के लिए गोल ब्रैकेट का उपयोग किया जा सकता है।
six = add 2 (1 * 4)
twelve = add 2 1 * 4
कोड की सीमाएँ तय करने के लिए Elm कर्ली ब्रैकेट, गोल ब्रैकेट या सेमीकोलन जैसे सिंटैक्स चिह्नों का उपयोग नहीं करता। इसके बजाय यह व्हाइटस्पेस और इंडेंटेशन का उपयोग करता है।
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Elm में हर फाइल एक मॉड्यूल होती है, और उसमें बाकी सारे कोड से पहले module स्टेटमेंट होना ज़रूरी है।
मॉड्यूल के नाम उसकी फाइल के नाम से मेल खाने चाहिए, यानी मॉड्यूल Calculator को Calculator.elm फाइल में होना चाहिए।
किसी मॉड्यूल के अंदर परिभाषित हर चीज़ उस मॉड्यूल तक ही सीमित रहती है, और exposing में नाम लिखे बिना बाहर से उसका उपयोग नहीं किया जा सकता।
-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)
six = 3 + 3
add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)
six = 3 + 3
add number1 number2 = number1 + number2
https://elm-lang.org/docs/syntax#modules
कमेंट Elm फाइल के अंदर लिखा वह टेक्स्ट होता है जिसे कोड के रूप में नहीं पढ़ा जाता।
यह मुख्य रूप से आपके और दूसरे प्रोग्रामर के पढ़ने के लिए होता है।
सिंगल-लाइन कमेंट के लिए दो डैश पर आधारित एक आसान सिंटैक्स है।
{- और -} को खोलने और बंद करने वाले डिलिमिटर की जोड़ी के रूप में इस्तेमाल करके मल्टीलाइन कमेंट भी लिखे जा सकते हैं।
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
एक स्टाइल गाइड मौजूद है, और कोड को अपने आप फॉर्मेट करने के लिए elm-format का उपयोग किया जा सकता है।
इस अभ्यास में आप अपनी पसंदीदा कुकबुक से एक शानदार लज़ान्या पकाने में मदद करने के लिए कुछ कोड लिखेंगे।
आपके पास तीन कार्य हैं। ये सभी लज़ान्या पकाने में लगने वाले समय से जुड़े हैं।
expectedMinutesInOven बनाइए, जो गणना करे कि लज़ान्या को ओवन में कितने मिनट रहना चाहिए। कुकबुक के अनुसार, ओवन में लगने वाला अपेक्षित समय 40 मिनट है:
expectedMinutesInOven
--> 40
preparationTimeInMinutes बनाइए, जो लज़ान्या में परतों की संख्या को पैरामीटर के रूप में लेता है और लौटाता है कि लज़ान्या तैयार करने में कितने मिनट लगते हैं, यह मानते हुए कि हर परत को तैयार करने में 2 मिनट लगते हैं।
preparationTimeInMinutes 3
--> 6
elapsedTimeInMinutes फंक्शन बनाइए जो दो पैरामीटर लेता है: पहला पैरामीटर लज़ान्या में परतों की संख्या है, और दूसरा पैरामीटर वह संख्या है जो बताती है कि लज़ान्या कितने मिनट से ओवन में है। यह फंक्शन लौटाएगा कि आपने लज़ान्या पकाने में कितने मिनट काम किया है, जो तैयारी के समय (मिनटों में) और लज़ान्या के अब तक ओवन में बिताए समय (मिनटों में) का जोड़ है।
elapsedTimeInMinutes 3 20
--> 26
Exercism पर साइन अप कीजिए और Elm को 28 कॉन्सेप्ट110 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।