Kari ialah teknik pengaturcaraan berfungsi di mana daripada mengambil berbilang argumen, fungsi mengambil satu hujah dan mengembalikan fungsi baharu yang mengambil hujah seterusnya. Proses ini berterusan sehingga semua hujah diterima, dan kemudian fungsi utama dilaksanakan.
Tujuan utama kari adalah untuk menjadikan fungsi boleh diguna semula dan meningkatkan fleksibiliti kod.
Kari ialah proses menukar fungsi kembali kepada fungsi, yang mengambil sebahagian daripada argumen dan menunggu argumen yang tinggal. Ini biasanya digunakan untuk fungsi dengan dua atau lebih argumen. Kari memudahkan komposisi fungsi dan aplikasi fungsi separa dalam pengaturcaraan berfungsi.
Andaikan terdapat fungsi mudah yang menambah dua nombor:
javascriptCopy code function add(x, y) { return x + y; } console.log(add(2, 3)); // Output: 5
Sekarang, kami akan mengubah suai fungsi di atas dengan kari:
javascriptCopy code function add(x) { return function(y) { return x + y; }; } const addTwo = add(2); // Currying: প্রথম আর্গুমেন্ট পাস করা হচ্ছে console.log(addTwo(3)); // Output: 5
Penjelasan:
Kebolehgunaan semula: Fungsi boleh digunakan semula dengan mudah dengan kari. Setelah hujah awal diluluskan, fungsi yang sama boleh digunakan untuk hujah baharu.
Contoh:
javascriptCopy code const multiply = x => y => x * y; const multiplyByTwo = multiply(2); console.log(multiplyByTwo(3)); // Output: 6 console.log(multiplyByTwo(4)); // Output: 8
Kebolehbacaan Kod: Kari meningkatkan kebolehbacaan kod. Ini menjadikan gelagat fungsi lebih jelas, kerana setiap fungsi bertanggungjawab untuk satu tugas.
Contoh:
javascriptCopy code const greet = greeting => name => `${greeting}, ${name}!`; const sayHello = greet("Hello"); console.log(sayHello("Alice")); // Output: Hello, Alice! console.log(sayHello("Bob")); // Output: Hello, Bob!
Komposisi Fungsi: Fungsi boleh digubah dengan mudah dengan kari, yang berguna untuk operasi yang kompleks.
Contoh:
javascriptCopy code const compose = (f, g) => x => f(g(x)); const toUpperCase = x => x.toUpperCase(); const exclaim = x => `${x}!`; const shout = compose(exclaim, toUpperCase); console.log(shout("hello")); // Output: HELLO!
Aplikasi Separa: Currying membenarkan penggunaan separa fungsi, yang membantu menyimpan hujah awal untuk menghantar hujah lain pada masa hadapan.
Contoh:
javascriptCopy code const partialAdd = (a, b, c) => a + b + c; const curriedAdd = a => b => c => a + b + c; const addFiveAndSix = curriedAdd(5)(6); console.log(addFiveAndSix(7)); // Output: 18
Currying ফাংশন Closures-এর উপর ভিত্তি করে কাজ করে। প্রতিটি নতুন ফাংশন তৈরি হওয়ার সময় এটি পূর্বের আর্গুমেন্টগুলোকে মেমরিতে সংরক্ষণ করে রাখে।
javascriptCopy code function add(x) { return function(y) { return function(z) { return x + y + z; }; }; } console.log(add(1)(2)(3)); // Output: 6
ব্যাখ্যা:
Currying হলো JavaScript এর একটি শক্তিশালী প্রোগ্রামিং কৌশল যা ফাংশনাল প্রোগ্রামিংকে সহজ করে এবং কোডের পুনরায় ব্যবহারযোগ্যতা এবং মডুলারিটি বাড়ায়। Currying এর মাধ্যমে একটি ফাংশনকে ধাপে ধাপে প্রয়োগ করা যায় এবং এটি কোডকে ছোট ও পরিষ্কার করে। যদিও Currying সব ক্ষেত্রে উপযুক্ত নয়, কিন্তু নির্দিষ্ট কিছু সমস্যা সমাধানে এটি একটি অমূল্য টুল। JavaScript ডেভেলপারদের জন্য Currying এর কনসেপ্ট এবং এর প্রয়োগ বোঝা অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি জটিল সমস্যাগুলিকে আরও কার্যকরীভাবে সমাধান করতে সাহায্য করে।
Atas ialah kandungan terperinci Perbincangan terperinci tentang kari dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!