# 1। करी और हार्ड कोड की दूसरी तर्क को अनदेखा करें
यह कोशिश करें कि cat
के अंतिम तर्क को किसी अज्ञात फ़ंक्शन में हार्ड कोडिंग करके इस पर आज़माएं। यह वास्तव में पहली बार तब जब Curry
तर्कों का इस्तेमाल करते हैं नहीं करता है:
catnip <- Curry(function(...) cat(..., "\n"))
# 2। एक गुमनाम समारोह
यहाँ currying द्वारा समारोह निर्माण एक दूसरे समाधान जो एक गुमनाम समारोह जो cat
के तर्क reorders का उपयोग करके cat
के अंतिम तर्क करी है।
catnip2 <- Curry(function(last.arg, ...) cat(..., last.arg), "\n")
# test
catnip2("hi", "there")
# 3। एक और अधिक बुनियादी कार्य
शायद यह सब का वास्तविक बिंदु यह देखने के लिए है कि हम बुनियादी घटकों को कैसे ले सकते हैं और उन्हें प्राप्त करने के लिए उन्हें करी कर सकते हैं। इस प्रकार हम एक सामान्य last.arg.fun
निर्धारित कर सकते हैं और फिर इसके बारे में एक करी द्वारा वांछित समारोह का निर्माण:
last.arg.fun <- function(FUN, last.arg, ...) FUN(..., last.arg)
catnip3 <- Curry(last.arg.fun, cat, "\n")
# test
last.arg.fun(cat, "\n", "hi", "there")
# test
catnip3("hi", "there")
हम दो चरणों में कर सकता है अगर हम कुछ बिंदु पर last.arg.cat
की जरूरत:
last.arg.cat <- Curry(last.arg.fun, cat)
catnip4 <- Curry(last.arg.cat, "\n")
# test
last.arg.cat("\n", "hi", "there")
# test
catnip4("hi", "there")
ध्यान दें कि प्रत्येक परीक्षण में एक पंक्ति का उत्पादन करना चाहिए जिसमें कहा गया है कि हाय ने एक नई लाइन में समाप्त किया था।
संपादित करें: अधिक समाधान।
करीबी बिल्ली, स्वादिष्ट! – John
निफ्टी सभी का जवाब देता है। 'Do.call' की मेरी निपुणता अपूर्ण है लेकिन प्रगतिशील है। धन्यवाद :-) –