Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 2.8 KB

File metadata and controls

37 lines (28 loc) · 2.8 KB
chapter अध्याय १९
pageNumber ९५
titleIndex १९.२

करिङ

'करिङ' कार्यात्मक प्रोग्रामिंगमा एक उन्नत प्रविधि हो जुन धेरै तर्कहरूको साथ एक प्रकार्यलाई नेस्टिंग प्रकार्यहरूको अनुक्रममा रूपान्तरण गर्दछ। यसले प्रकार्यलाई f(a,b,c) बाट f(a)(b)(c) को रूपमा कल गर्न योग्यमा रूपान्तरण गर्दछ। यसले प्रकार्यलाई कल गर्दैन बरु यसलाई रूपान्तरण गर्दछ।

करिङको राम्रो समझ प्राप्त गर्न एक साधारण add प्रकार्य थप्नुहोस् सिर्जना गरौं जुन तीन तर्कहरू लिन्छ र तिनीहरूको योगफल फर्काउँछ। त्यसपछि, हामी एक addCurry प्रकार्य सिर्जना गर्दछौं जसले एकल इनपुट लिन्छ र यसको योगफलको साथ प्रकार्यहरूको श्रृंखला फर्काउँछ।

// Noncurried version
const add = (a, b, c)=>{
    return a+ b + c
}
console.log(add(2, 3, 5)) // 10

// Curried version
const addCurry = (a) => {
    return (b)=>{
        return (c)=>{
            return a+b+c
        }
    }
}
console.log(addCurry(2)(3)(5)) // 10

यहाँ, हामी देख्न सक्छौं कि दुवै करीड र गैर-करी संस्करणहरूले समान परिणाम फर्काए। करी गर्नु धेरै कारणहरूको लागि लाभदायक हुन सक्छ, जसमध्ये केही यहाँ उल्लेख गरिएको छ।

  • यसले एउटै चरलाई बारम्बार पास गर्नबाट जोगिन मद्दत गर्दछ।

  • यसले प्रकार्यलाई एकल जिम्मेवारीको साथ सानो खण्डहरूमा विभाजन गर्दछ, जसले प्रकार्यलाई कम त्रुटि-प्रवण बनाउँदछ।

  • यो एक उच्च-क्रम प्रकार्य सिर्जना गर्न कार्यात्मक प्रोग्रामिंगमा प्रयोग गरिन्छ।