Maison > Article > interface Web > Discussion détaillée sur le curry en JavaScript
Le currying est une technique de programmation fonctionnelle où, au lieu de prendre plusieurs arguments, une fonction prend un seul argument et renvoie une nouvelle fonction qui prend l'argument suivant. Ce processus se poursuit jusqu'à ce que tous les arguments soient reçus, puis la fonction principale est exécutée.
L'objectif principal du curry est de rendre les fonctions réutilisables et d'augmenter la flexibilité du code.
Le currying est le processus de reconversion d'une fonction en fonction, qui prend une partie des arguments et attend les arguments restants. Ceci est généralement utilisé pour les fonctions avec deux arguments ou plus. Le currying simplifie la composition des fonctions et les applications de fonctions partielles dans la programmation fonctionnelle.
Supposons qu'il existe une fonction simple qui ajoute deux nombres :
javascriptCopy code function add(x, y) { return x + y; } console.log(add(2, 3)); // Output: 5
Maintenant, nous allons modifier la fonction ci-dessus en curry :
javascriptCopy code function add(x) { return function(y) { return x + y; }; } const addTwo = add(2); // Currying: প্রথম আর্গুমেন্ট পাস করা হচ্ছে console.log(addTwo(3)); // Output: 5
Explication :
Réutilisabilité : Les fonctions peuvent être facilement réutilisées par curry. Une fois l'argument initial passé, la même fonction peut être utilisée pour de nouveaux arguments.
Exemple :
javascriptCopy code const multiply = x => y => x * y; const multiplyByTwo = multiply(2); console.log(multiplyByTwo(3)); // Output: 6 console.log(multiplyByTwo(4)); // Output: 8
Lisibilité du code : Le currying augmente la lisibilité du code. Cela rend le comportement des fonctions plus clair, puisque chaque fonction est responsable d'une seule tâche.
Exemple :
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!
Composition des fonctions : Les fonctions peuvent être facilement composées par curry, ce qui est utile pour les opérations complexes.
Exemple :
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!
Application partielle : Le currying permet une application partielle des fonctions, ce qui permet de sauvegarder les arguments initiaux pour transmettre d'autres arguments à l'avenir.
Exemple :
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 এর কনসেপ্ট এবং এর প্রয়োগ বোঝা অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি জটিল সমস্যাগুলিকে আরও কার্যকরীভাবে সমাধান করতে সাহায্য করে।
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!