मैं रूबी में कुछ currying करने के लिए कोशिश कर रहा हूँ:रूबी
def add(a,b)
return a+b
end
plus = lambda {add}
curry_plus = plus.curry
plus_two = curry_plus[2] #Line 24
puts plus_two[3]
मैं त्रुटि
func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError)
func_test.rb से
: 24: '
`में लेकिन अगर मैं
plus = lambda {|a,b| a+ b}
कर यह काम करने के लिए लगता है। लेकिन लैम्ब्डा के साथ असाइन करने के बाद प्लस प्रिंट करके दोनों तरीकों से एक ही प्रकार की वस्तु वापस आती है। मैंने क्या गलत समझा है?
': add.to_proc' सही काम नहीं करेगा। यह 'proc {| रिसीवर, * args | के बराबर एक प्रक्रिया देता है receiver.add (* args)} '। जिसका अर्थ है कि 'add.to_proc [1,2] 'self.add (1,2)' के बजाय '1.add (2)' को कॉल करने का प्रयास करेगा। – Chuck
@ चक: ठीक है, मेरा बुरा। – sepp2k
यह सब अब समझ में आता है, धन्यवाद sepp2k! – MattyW