यह उपयोगी होगा यदि कोई व्यक्ति इसका उदाहरण एक सरल उदाहरण के साथ दे सकता है?
इसके अलावा, इसके और इसके विपरीत उपयोग parent.frame()
करने के लिए यह कहां उपयोगी होगा parent.env()
।
जवाबों:
parent.env
वह वातावरण है जिसमें एक क्लोजर (जैसे, फ़ंक्शन) को परिभाषित किया गया है। parent.frame
वह वातावरण है जिसमें से क्लोजर लागू किया गया था।
f = function()
c(f=environment(), defined_in=parent.env(environment()),
called_from=parent.frame())
g = function()
c(g=environment(), f())
और फिर
> g()
$g
<environment: 0x14060e8>
$f
<environment: 0x1405f28>
$defined_in
<environment: R_GlobalEnv>
$called_from
<environment: 0x14060e8>
मुझे यकीन नहीं है कि जब एक मात्र नश्वर वास्तव में कभी उनका उपयोग करना चाहेगा, लेकिन अवधारणाएं यहां शाब्दिक गुंजाइश को समझने में उपयोगी हैं
> f = function() x
> g = function() { x = 2; f() }
> h = function() { x = 3; function() x }
> x = 1
> f()
[1] 1
> g()
[1] 1
> h()()
[1] 3
या आर के लिए परिचय में गूढ़ 'बैंक खाते' उदाहरण में, विवरण अनुभाग का पहला पैराग्राफ ?parent.frame
चीजों को स्पष्ट कर सकता है।
वातावरण R में व्याप्त है, उदाहरण के लिए, search()
पथ (लगभग) वातावरण एक साथ भाई-बहन के रिश्ते में जंजीर है। कभी-कभी env = new.env(parent=emptyenv())
प्रतीक लुक-अप को दरकिनार करने के लिए देखता है - आम तौर env[["x"]]
पर पहले में दिखाई देगा env
और फिर env
यदि नहीं मिला है। इसी तरह, <<-
काम शुरू करने के लिए लग रहा है parent.env
। R में अपेक्षाकृत नया संदर्भ वर्ग कार्यान्वयन एक उदाहरण-विशिष्ट वातावरण को परिभाषित करने के लिए इन विचारों पर निर्भर करता है जिसमें प्रतीक (उदाहरण के क्षेत्र और विधियाँ) पाए जा सकते हैं।