Product Design, Manufacturing & Innovation Resources
घर » R में लेक्सिकल स्कोपिंग

R में लेक्सिकल स्कोपिंग

1980
  • Gerald Jay Sussman
  • Guy L. Steele Jr.
Computer programmer demonstrating lexical scoping in R programming language.

(यह छवि केवल उदाहरण के लिए बनाई गई है)

R लेक्सिकल स्कोपिंग का उपयोग करता है, जो स्कीम भाषा से लिया गया एक कॉन्सेप्ट है। इसका मतलब है कि किसी फ़ंक्शन में फ्री वेरिएबल्स के मानों को उस वातावरण में खोजकर निर्धारित किया जाता है जहाँ फ़ंक्शन को परिभाषित किया गया था, न कि उस वातावरण में जहाँ इसे कॉल किया गया है। इससे फ़ंक्शन का व्यवहार अधिक अनुमानित और कॉलिंग संदर्भ से स्वतंत्र हो जाता है, जो फंक्शनल प्रोग्रामिंग की एक प्रमुख विशेषता है।

लेक्सिकल स्कोपिंग, जिसे स्टैटिक स्कोपिंग भी कहा जाता है, एक मानक प्रक्रिया है जिसके द्वारा चर नामों को खोजा जाता है। प्रोग्रामिंग भाषाR में, जब किसी फ़ंक्शन को किसी ऐसे वेरिएबल तक पहुँचने की आवश्यकता होती है जो स्थानीय रूप से परिभाषित नहीं है (एक "मुक्त वेरिएबल"), तो यह उस वेरिएबल को उस वातावरण में खोजता है जहाँ फ़ंक्शन बनाया गया था। यह "निर्माण वातावरण" फ़ंक्शन से स्थायी रूप से जुड़ा होता है। यह कुछ पुरानी भाषाओं में उपयोग किए जाने वाले डायनामिक स्कोपिंग के विपरीत है, जहाँ खोज फ़ंक्शन कॉल की श्रृंखला ("कॉलिंग वातावरण") में आगे बढ़ती है।

उदाहरण के लिए, एक फ़ंक्शन `f()` पर विचार करें जो एक चर `x` का उपयोग करता है लेकिन उसे परिभाषित नहीं करता है। यदि `f()` को वैश्विक वातावरण में परिभाषित किया गया है जहाँ `x` का मान 10 है, तो चाहे इसे कहीं से भी कॉल किया जाए, यह हमेशा `x = 10` का उपयोग करेगा। यहाँ तक कि यदि इसे किसी अन्य फ़ंक्शन से कॉल किया जाता है जिसका अपना स्थानीय मान `x = 20` है, तब भी `f()` कॉलिंग वातावरण के `x` को अनदेखा कर देगा और अपने परिभाषा वातावरण के `x` का उपयोग करेगा। यह व्यवहार कोड को डीबग करना और समझना आसान बनाता है, क्योंकि किसी फ़ंक्शन का व्यवहार पूरी तरह से उसके अपने कोड और उस वातावरण द्वारा निर्धारित होता है जिसमें इसे परिभाषित किया गया है।

This feature is crucial for functional programming paradigms, enabling powerful constructs like closures, where a function can “remember” the environment in which it was created. This is heavily utilized in advanced R programming and package development, such as in the `lapply` family of functions and in frameworks like Shiny for web applications.

UNESCO Nomenclature: 1203
कंप्यूटर विज्ञान

Type

सार प्रणाली

व्यवधान

इंक्रीमेंटल

उपयोग

व्यापक उपयोग

शगुन

  • The concept of scope in programming languages
  • लिस्प प्रोग्रामिंग भाषा और इसकी बोलियाँ
  • स्कीम प्रोग्रामिंग भाषा, जिसने लेक्सिकल स्कोपिंग को लोकप्रिय बनाया
  • लैम्डा कैलकुलस as a theoretical foundation for functions and scope

आवेदन

  • फंक्शनल प्रोग्रामिंग के लिए R में क्लोज़र का निर्माण
  • चर टकराव से बचने के लिए पैकेज नेमस्पेस का विकास
  • dplyr जैसे पैकेजों में उपयोग की जाने वाली गैर-मानक मूल्यांकन तकनीकों को सक्षम करना
  • बिना किसी दुष्प्रभाव के मजबूत और मॉड्यूलर कोड का निर्माण करना

पेटेंट:

    संभावित नवाचार विचार

    • स्कोप हेरफेर का उपयोग करके अविश्वसनीय कोड को सैंडबॉक्स करने के लिए एक सुरक्षित R वातावरण
    • एक डिबगिंग टूल जो किसी भी फ़ंक्शन के लिए लेक्सिकल स्कोप चेन को विज़ुअलाइज़ करता है
    • वित्तीय अनुबंधों के लिए एक डोमेन-विशिष्ट भाषा जो स्थिति को दर्शाने के लिए क्लोजर का उपयोग करती है
    • इंटरैक्टिव स्कोप एक्सप्लोरेशन का उपयोग करके प्रोग्रामिंग अवधारणाओं को सिखाने के लिए एक शैक्षिक उपकरण
    • एक समानांतर कंप्यूटिंग फ्रेमवर्क जो नोड्स में वेरिएबल स्कोप को स्वचालित रूप से प्रबंधित करता है
    • ए सही समय पर संकलक for R that heavily optimizes based on static scope analysis
    • अंतर्निहित डेटा और कार्यों के साथ स्व-निहित, पुनरुत्पादनीय विश्लेषण ऑब्जेक्ट बनाने के लिए एक पैकेज
    • परिभाषा परिवेशों को कैप्चर और पुनर्स्थापित करके फ़ंक्शन व्यवहार का संस्करण निर्धारित करने की एक प्रणाली।
    • एक लिंटर जो गलत समझे गए स्कोपिंग नियमों से उत्पन्न होने वाली संभावित त्रुटियों का पता लगाता है।
    • परीक्षण उद्देश्यों के लिए अनुकूलित, पृथक मूल्यांकन वातावरण बनाने हेतु एक पुस्तकालय
    संबंधित विषय: लेक्सिकल स्कोपिंग, स्टैटिक स्कोपिंग, फंक्शनल प्रोग्रामिंग, R, स्कीम, एनवायरनमेंट, क्लोजर, फ्री वेरिएबल, नेमस्पेस, नॉन-स्टैंडर्ड इवैल्यूएशन।

    ऐतिहासिक संदर्भ

    R में लेक्सिकल स्कोपिंग

    1973
    1980
    1980
    1980
    1980
    1986-01-01
    1990
    1970-01-01
    1975-06-01
    1980
    1980
    1980
    1982-07-01
    1988-06-01
    1990

    (यदि तिथि अज्ञात है या प्रासंगिक नहीं है, उदाहरण के लिए "द्रव यांत्रिकी", तो इसके उल्लेखनीय उद्भव का एक अनुमानित आंकड़ा प्रदान किया गया है)

    नवीनतम परिवर्धन

    शीर्ष पोस्ट और लेख

    शीर्ष मूल उपकरण

    10वां वर्ष सालगिरह

    पंजीकृत सदस्यों के लिए पूर्ण आकार की छवियाँ और डाउनलोड 100% निःशुल्क उपलब्ध हैं।