ट्रैक
/
Elm
Elm
/
अभ्यास
/
मारियो की शानदार लज़ान्या
मारियो की शानदार लज़ान्या

मारियो की शानदार लज़ान्या

सीखने का अभ्यास

परिचय

Let

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)

निर्देश

अपने जन्मदिन पर आपको एक नई कुकबुक मिली है और आप जानना चाहते हैं कि उसमें दिया गया लसग्ना का नुस्खा आपकी अब तक की पसंदीदा कुकबुक से बेहतर है या नहीं। इस अभ्यास में आप कुछ कोड लिखेंगे जो आपको नई कुकबुक वाला लसग्ना बनाने में मदद करेगा।

आपके साथ रहने वाली आपकी साथी अभी भी ऑफिस में व्यस्त है और जानना चाहती है कि लसग्ना कब तैयार होगी, ताकि वह समय पर वापस लौट सके।

1. यह पता कीजिए कि लसग्ना कब तैयार होगी

लसग्ना कब तैयार होगी, यह पता करने के लिए एक फंक्शन बनाइए। कोड को सरल और स्पष्ट बनाने के लिए आपको 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
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Elm Exercism

मारियो की शानदार लज़ान्या शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Elm को 28 कॉन्सेप्ट110 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।