let एक्सप्रेशन का उपयोग एक लोकल स्कोप बनाने के लिए किया जाता है, और यह कुछ खास जगहों पर बहुत काम आता है:
let एक्सप्रेशन के अंदर आप ज़्यादातर चीज़ें कर सकते हैं, जिनमें डेस्ट्रक्चरिंग भी शामिल है (इसके बारे में ज़्यादा जानकारी आगे के अभ्यासों में मिलेगी), लेकिन कोई नया कस्टम टाइप या टाइप एलियस बनाना संभव नहीं है।
let
cube x = x * x * x
in
cube a + cube b + cube c
beginWithPattern : Size -> Padding -> Pattern -> GameOfLife
beginWithPattern minimumSize padding pattern =
let
size = calculateSize minimumSize padding pattern
center = Size.center size
centeredPattern = Pattern.centerAt center pattern
dimensions = { width = size, height = size }
deadCells = Matrix.create dimensions Dead
in
GameOfLife (bringPatternToLife deadCells centeredPattern)
अपने जन्मदिन पर आपको एक नई कुकबुक मिली है और आप जानना चाहते हैं कि उसमें दिया गया लसग्ना का नुस्खा आपकी अब तक की पसंदीदा कुकबुक से बेहतर है या नहीं। इस अभ्यास में आप कुछ कोड लिखेंगे जो आपको नई कुकबुक वाला लसग्ना बनाने में मदद करेगा।
आपके साथ रहने वाली आपकी साथी अभी भी ऑफिस में व्यस्त है और जानना चाहती है कि लसग्ना कब तैयार होगी, ताकि वह समय पर वापस लौट सके।
लसग्ना कब तैयार होगी, यह पता करने के लिए एक फंक्शन बनाइए। कोड को सरल और स्पष्ट बनाने के लिए आपको let एक्सप्रेशन का इस्तेमाल करना चाहिए।
remainingTimeInMinutes फंक्शन बनाइए, जो दो पैरामीटर लेता है और जिसके अंदर एक let एक्सप्रेशन लिखा होता है। पहला पैरामीटर लसग्ना की परतों की संख्या है और दूसरा पैरामीटर उन मिनटों की संख्या है जो आपके पकाना शुरू करने के बाद बीत चुके हैं।
let एक्सप्रेशन के let वाले भाग में expectedMinutesInOven को परिभाषित कीजिए, ताकि पता चले कि लसग्ना को ओवन में कितने मिनट रहना चाहिए। कुकबुक के अनुसार लसग्ना को ओवन में 40 मिनट रहना चाहिए:
expectedMinutesInOven
--> 40
let एक्सप्रेशन के let वाले भाग में preparationTimeInMinutes को परिभाषित कीजिए। यह पैरामीटर के तौर पर लसग्ना की परतों की संख्या लेता है और लौटाता है कि लसग्ना तैयार करने में कितने मिनट लगते हैं, यह मानते हुए कि हर परत को तैयार करने में 2 मिनट लगते हैं।
preparationTimeInMinutes 3
--> 6
let एक्सप्रेशन के in वाले भाग में लौटाइए कि लसग्ना बनने में कितने मिनट बचे हैं। यह संख्या preparationTimeInMinutes और expectedMinutesInOven के जोड़ में से उन मिनटों की संख्या घटाने पर मिलती है जो आपके पकाना शुरू करने के बाद बीते हैं।
remainingTimeInMinutes 3 10
--> 6 + 40 - 10 = 36
Exercism पर साइन अप कीजिए और Elm को 28 कॉन्सेप्ट110 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।