Le curry est un concept important dans la programmation fonctionnelle. Son idée principale est de convertir une fonction multi-paramètre en une série de fonctions qui acceptent un seul paramètre. Dans PHP, nous pouvons utiliser les fonctions flèches pour implémenter le curry, simplifiant ainsi la structure du code et améliorant la réutilisation du code.
La fonction de flèche est une nouvelle syntaxe introduite dans PHP 7.4. Sa caractéristique est qu'il peut capturer des variables externes et que le corps de fonction ne contient qu'une seule expression, il n'est donc pas nécessaire d'utiliser le mot clé de retour.
Voici un exemple de fonction de curry à travers les fonctions de flèche:
// Définir une fonction d'addition normale
$add = function($a, $b) {
return $a + $b;
};
// Définir une fonction de curry
$curry = function($func) {
return fn($a) => fn($b) => $func($a, $b);
};
// Appeler la fonction d'addition à l'aide de curry
$curriedAdd = $curry($add);
// Méthode d'appel1
$result = $curriedAdd(1)(2); // 3
echo $result;
// Méthode d'appel2
$add2 = $curriedAdd(2); // Paramètres fixes a = 2
$result = $add2(3); // 5
echo $result;
// Méthode d'appel3
$add5 = $curriedAdd(5); // Paramètres fixes a = 5
$result = $add5(6); // 11
echo $result;
Dans le code ci-dessus, nous définissons d'abord une fonction d'addition simple «$ add`, puis implémentons le curry de la fonction via la fonction« $ curry ». La fonction curry est implémentée via une fonction Arrow, qui peut accepter un paramètre `$ a` et renvoyer une nouvelle fonction. Cette nouvelle fonction accepte un autre paramètre `$ b` et calcule enfin le résultat via la fonction d'origine« $ func ».
Grâce au curry, nous pouvons transmettre des paramètres de manière flexible et il existe trois méthodes d'appel courantes:
Cette méthode de curry améliore non seulement la flexibilité des fonctions, mais nous aide également à mieux gérer et réutiliser le code, en particulier dans les combinaisons de fonctions et le traitement des fonctions de rappel.
En utilisant la fonction flèche de PHP pour atteindre le curry, nous pouvons simplifier la structure du code, ce qui rend le code plus lisible et maintenable. Cependant, dans les projets réels, nous devons décider d'utiliser le curry en fonction du scénario d'application spécifique pour éviter les abus et rendre le code trop compliqué.