द्वारा पारित करें, मैं मेमोरी उपयोग के संबंध में कार्यों के तर्कों को पारित करने, चर की प्रतियां इत्यादि बनाते समय तर्क आर का उपयोग करना चाहता हूं। यह वास्तव में चर परिवर्तक की एक प्रति बनाते हैं, बस उस चर के संदर्भ को पारित करते हैं? विशेष रूप से स्थितियों के बारे में मैं उत्सुक हूँ हैं:आर, गहरी बनाम उथली प्रतियां, संदर्भ
f <- function(x) {x+1}
a <- 1
f(a)
a
सचमुच पारित किया जा रहा है या एक पारित किया जा रहा करने के लिए एक संदर्भ है?
x <- 1
y <- x
प्रतिलिपि का संदर्भ? यह मामला कब नहीं है?
अगर कोई मुझे यह समझा सकता है तो मैं अत्यधिक सराहना करता हूं।
आप मिल सकती है [इस] (http://cran.at.r-project.org/doc/manuals/R आर भाषा परिभाषा सहायक के -lang.html # मूल्यांकन) खंड। – joran
मोरांडाट और सहकर्मियों द्वारा इस पत्र में आर में तर्कों के आलसी मूल्यांकन की एक दिलचस्प और महत्वपूर्ण चर्चा है: http://www.cs.purdue.edu/homes/jv/pubs/ecoop12.pdf – jthetzel
उचित रूप से 'tracemem' का उपयोग करना संकलित आर खोज के लिए सहायक हो सकता है, जैसा कि 'एनएएमएड फ़ील्ड' की समझ के साथ 'आंतरिक (निरीक्षण (एक्स)) 'कर सकता है; मेरा सामान्य मंत्र 'कॉपी-ऑन-चेंज' है, उदाहरण के लिए आपका 'y <- x' एक प्रतिलिपि (अभी तक) ट्रिगर नहीं करता है क्योंकि मूल में कोई बदलाव नहीं आया है, स्मृति' x' (और ' y') 'NAMED' है जैसे कि या तो एक प्रतिलिपि एक प्रतिलिपि ट्रिगर करेगा। –