"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > दायरा प्रगति

दायरा प्रगति

2024-11-02 को प्रकाशित
ब्राउज़ करें:316

Scope progression

अनिवार्य प्रोग्रामिंग में, हमारे पास आमतौर पर कोड होता है जो इस तरह दिखता है:

func addOneToSlice(xs []int) []int {
  rs := make([]int, len(xs))
  for i, value := range xs {
    rs[i] = value   1
  }
  return rs
}

हालाँकि, लूप के बारे में निम्नलिखित पर ध्यान दें:

  • प्रत्येक पुनरावृत्ति का एक विशिष्ट उद्देश्य होता है, जो वर्तमान तत्व में एक जोड़ना है।
  • हालाँकि, प्रत्येक पुनरावृत्ति पर कोई प्रतिबंध नहीं है कि वह किस तत्व को संचालित कर सकता है।
  • xs[i 2] और rs[i 3] के साथ संचालन करने से हमारे पास मौजूद कोड की संरचना में मौलिक परिवर्तन नहीं होगा, जबकि अंतिम परिणाम गलत हो जाएगा।

तुलना करें कि वही कार्य F# में कैसे किया जाएगा:

let rec addOneToList =
  function
  | [] -> []
  | x :: xs -> x   1 :: addOneToList xs

अब निम्नलिखित पर विचार करें:

  • हमारे पास फ़ंक्शन तर्क के रूप में एक सूची है।
  • कार्यात्मक भाषाओं में एक सूची एक लिंक की गई सूची है।
  • लिंक की गई सूचियों पर कुशल और मानक संचालन हैं:
    • सिर x को उसकी पूंछ x से अलग करना
    • सिर पर कुछ करना x
    • एक पैरामीटर के रूप में पारित सूची की तुलना खाली सूची से की जा रही है []

इन प्रतिबंधों को देखते हुए, सूची के शीर्ष पर नहीं होने वाले किसी भी तत्व में 1 जोड़ने से हमारे फ़ंक्शन की संरचना में महत्वपूर्ण बदलाव आएगा।

अब तुलना करें कि दोनों शैलियों में गणना कैसे आगे बढ़ती है:

  • कार्यात्मक शैली में, हम नए मूल्यों के साथ एक नया दायरा बनाते हैं, जिसमें उपरोक्त उदाहरण में एक पुनरावर्ती कॉल करना शामिल है।
  • अनिवार्य शैली में, हम दायरे को बदले बिना मौजूदा मूल्य को बदलते हैं।

कार्यात्मक शैली में, कम्प्यूटेशनल प्रगति के साथ दोनों दायरे को मिलाने से निम्नलिखित परिणाम होते हैं:

  • हम उत्परिवर्तन से बचते हैं।
  • निष्पादन प्रवाह स्पष्ट है।
  • जिस संरचना से हम निपट रहे हैं वह स्पष्ट हो जाती है।
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/lamg/scope-progression-4iil?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3