यहाँ मेरा R कोड है। कार्यों को इस प्रकार परिभाषित किया गया है:
f <- function(x, T) {
10 * sin(0.3 * x) * sin(1.3 * x ^ 2) + 0.001 * x ^ 3 + 0.2 * x + 80
}
g <- function(x, T, f=f) {
exp(-f(x) / T)
}
test <- function(g=g, T=1) {
g(1, T)
}
रनिंग त्रुटि है:
> परीक्षण ()
परीक्षण में त्रुटि ():
मूल्यांकन के तहत पहले से ही वादा: पुनरावर्ती डिफ़ॉल्ट तर्क संदर्भ या पहले की समस्याएं?
अगर मैं की परिभाषा स्थानापन्न f
के उस में g
है, तो त्रुटि दूर चला जाता है।
मैं सोच रहा था कि क्या त्रुटि थी? यह कैसे सही करने के लिए करता है, तो की परिभाषा स्थानापन्न नहीं है f
की है कि में g
? धन्यवाद!
अपडेट करें:
धन्यवाद! दो सवाल:
(1) यदि फ़ंक्शन test
आगे के लिए तर्क लेता है f
, तो क्या आप कुछ ऐसा जोड़ेंगे test <- function(g.=g, T=1, f..=f){ g.(1,T, f.=f..) }
? अधिक पुनरावृत्ति वाले मामलों में, क्या यह अधिक जोड़ने के लिए एक अच्छा और सुरक्षित अभ्यास है । ?
(2) यदि f
एक गैर-फ़ंक्शन तर्क है, उदाहरण के लिए g <- function(x, T, f=f){ exp(-f*x/T) }
और test <- function(g.=g, T=1, f=f){ g.(1,T, f=f.) }
, औपचारिक और वास्तविक गैर-कार्यात्मक तर्क दोनों के लिए एक ही नाम का उपयोग करना एक अच्छा और सुरक्षित अभ्यास होगा या इससे कुछ संभावित परेशानी हो सकती है?