करीइंग फ़ंक्शन
बहु-आर्ग्युमेंट फ़ंक्शन को शृंखलाओं में बदलिए।
करीइंग फ़ंक्शन, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
करीकरण क्या है
करीकरण ऐसे फ़ंक्शन को, जो कई आर्ग्युमेंट लेता है, ऐसे फ़ंक्शन की शृंखला में बदलता है जो हर बार एक आर्ग्युमेंट लेते हैं।
add(1, 2, 3) के बजाय आप add(1)(2)(3) कॉल करते हैं। हर कॉल अगला फ़ंक्शन लौटाती है, जब तक सभी आर्ग्युमेंट एकत्रित न हो जाएँ।
हाथ से करीकरण
करीकरण को समझने का सबसे स्पष्ट तरीका नेस्टेड फ़ंक्शन लिखना है, जहाँ हर फ़ंक्शन अगला फ़ंक्शन लौटाता है और पहले के आर्ग्युमेंट को अपने साथ रखता है।
function add(a) {
return function (b) {
return function (c) {
return a + b + c;
};
};
}
console.log(add(1)(2)(3));नेस्टेड ऐरो रिटर्न
ऐरो फ़ंक्शन से करीकृत परिभाषाएँ छोटी हो जाती हैं। हर => अगला ऐरो लौटाता है और अंतिम ऐरो वास्तविक काम करता है।
const add = a => b => c => a + b + c;
console.log(add(1)(2)(3));
console.log(add(10)(20)(30));क्लोज़र आर्ग्युमेंट याद रखते हैं
करीकरण क्लोज़र पर निर्भर करता है। हर लौटाया गया फ़ंक्शन अपने बाहरी दायरे के चरों का संदर्भ बनाए रखता है, इसलिए अंतिम कॉल चलने तक पहले के आर्ग्युमेंट उपलब्ध रहते हैं।
const greet = greeting => name => greeting + ', ' + name + '!';
const sayHi = greet('Hi');
console.log(sayHi('Ada'));
console.log(sayHi('Grace'));चरण-दर-चरण कॉल करना
आपको सभी आर्ग्युमेंट एक साथ लागू करने की आवश्यकता नहीं है। आप बीच में रुक सकते हैं और आंशिक परिणाम को किसी चर में रखकर उसका पुनः उपयोग कर सकते हैं।
const add = a => b => c => a + b + c;
const addOne = add(1);
const addOneAndTwo = addOne(2);
console.log(addOneAndTwo(3));
console.log(addOneAndTwo(100));एक सामान्य curry सहायक
नेस्टेड फ़ंक्शन को हाथ से लिखना उबाऊ होता है। एक सामान्य curry सहायक तब तक आर्ग्युमेंट एकत्र करता है जब तक पर्याप्त आर्ग्युमेंट न मिल जाएँ, फिर मूल फ़ंक्शन को कॉल करता है।
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn(...args);
}
return (...more) => curried(...args, ...more);
};
}
const add = curry((a, b, c) => a + b + c);
console.log(add(1)(2)(3));curry के साथ लचीला आह्वान
एक अच्छा curry सहायक तर्कों को किसी भी समूह में स्वीकार करता है। fn.length यह बताता है कि मूल फ़ंक्शन ने कितने पैरामीटर घोषित किए थे।
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn(...args);
}
return (...more) => curried(...args, ...more);
};
}
const add = curry((a, b, c) => a + b + c);
console.log(add(1, 2, 3));
console.log(add(1, 2)(3));
console.log(add(1)(2, 3));विशेषीकरण के लिए करीकरण
करीकरण से विशेषीकरण स्वाभाविक हो जाता है: पहला तर्क लागू कीजिए और लौटाए गए फ़ंक्शन का अनेक कॉल में पुनः उपयोग कीजिए।
const multiply = a => b => a * b;
const double = multiply(2);
const triple = multiply(3);
console.log(double(5));
console.log(triple(5));ऐरे विधियों के साथ करीकरण
करीकृत फ़ंक्शन map और filter में बिल्कुल सही बैठते हैं, क्योंकि इनमें से प्रत्येक एक-तर्क वाला फ़ंक्शन बनाता है, जो हर तत्व को प्राप्त करने के लिए तैयार रहता है।
const greaterThan = min => value => value > min;
const over10 = greaterThan(10);
console.log([5, 12, 8, 20].filter(over10));करीकरण बनाम आंशिक अनुप्रयोग
आंशिक अनुप्रयोग कुछ तर्कों को तय कर देता है और बाकी तर्कों को बाद में होने वाली एक कॉल के लिए छोड़ देता है। करीकरण किसी फ़ंक्शन को हमेशा एक-तर्क वाली कॉल की शृंखला में बाँटता है।
करीकरण, आंशिक अनुप्रयोग का एक विशिष्ट और पूरी तरह विभाजित रूप है।
const partial = (a, b) => c => a + b + c;
const curried = a => b => c => a + b + c;
console.log(partial(1, 2)(3));
console.log(curried(1)(2)(3));करीकरण क्यों करें
करीकरण छोटे, संयोज्य और पुनः उपयोग योग्य फ़ंक्शन बनाने के लिए प्रोत्साहित करता है। इसका फ़ंक्शन संयोजन के साथ स्वाभाविक मेल है, जिसे आप अगले पाठ में सीखेंगे। मुख्य बात यह है: कोई curried फ़ंक्शन कभी 'अधूरा' नहीं होता; संतुष्ट होने तक वह बस दूसरा फ़ंक्शन लौटाता रहता है।
const tag = name => content => '<' + name + '>' + content + '</' + name + '>';
const bold = tag('b');
console.log(bold('important'));
console.log(tag('i')('slanted'));त्वरित जाँच
const add = a => b => c => a + b + c; दिए जाने पर, add(1)(2) का मूल्यांकन किस परिणाम में होता है?
पुनरावलोकन: करीकरण
आपने फ़ंक्शन को एक-तर्क वाली शृंखलाओं में विभाजित करना सीखा:
- करीकृत फ़ंक्शन क्लोज़र के माध्यम से हर तर्क के लिए एक नया फ़ंक्शन लौटाते हैं।
- नेस्टेड ऐरो संक्षिप्त करीकृत परिभाषाएँ देते हैं।
- एक सामान्य
curryसहायकfn.lengthका उपयोग करके यह जानता है कि पर्याप्त तर्क कब प्राप्त हो गए हैं। - करीकरण सुव्यवस्थित विशेषीकरण और संयोजन को सक्षम बनाता है।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 59
- पाठ
- 200
अक्सर पूछे जाने वाले प्रश्न
क्या “करीइंग फ़ंक्शन” पाठ निःशुल्क है?
हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “करीइंग फ़ंक्शन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“करीइंग फ़ंक्शन” में मैं क्या सीखूँगा?
बहु-आर्ग्युमेंट फ़ंक्शन को शृंखलाओं में बदलिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“करीइंग फ़ंक्शन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- आंशिक अनुप्रयोग
- करीइंग फ़ंक्शन
- फ़ंक्शन संयोजन
- pipe और compose बनाना