Fonctions d’ordre supérieur et curryfication
Passer, retourner et appliquer partiellement des fonctions
Fonctions d’ordre supérieur et curryfication est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.
Les fonctions sont des valeurs
Dans Dart, une fonction est simplement une valeur que vous pouvez stocker dans une variable. Cette idée suffit à ouvrir tout l’univers des modèles fonctionnels. 🎯
int square(int x) => x * x;
var op = square;
print(op(4)); // 16Que signifie « d’ordre supérieur » ?
Une fonction d’ordre supérieur est une fonction qui prend une fonction comme argument ou qui renvoie une fonction. Vous les avez déjà utilisées avec les méthodes de liste.
Transmettre une fonction
Lorsque vous transmettez un comportement comme argument, c’est l’appelant qui décide de ce qui se passe. Ici, apply exécute toute fonction qu’il reçoit.
int apply(int v, int Function(int) f) => f(v);
print(apply(5, (x) => x + 1)); // 6Syntaxe du type de fonction
Le type int Function(int) se lit ainsi : une fonction qui prend un int et renvoie un int. Les types rendent votre intention parfaitement claire.
void run(String Function(String) format) {
print(format('hi'));
}Renvoyer une fonction
Une fonction d’ordre supérieur peut aussi renvoyer une fonction. La fonction renvoyée mémorise les valeurs qui l’entouraient au moment de sa création.
Function makeAdder(int n) {
return (int x) => x + n;
}Utiliser la fonction renvoyée
Appelez une fois la fonction de création pour construire une fonction spécialisée, puis réutilisez-la. Chaque résultat est son propre petit outil configuré.
var add10 = makeAdder(10);
print(add10(5)); // 15
print(add10(1)); // 11Découvrez le currying
Le currying transforme une fonction à plusieurs arguments en une chaîne de fonctions à un seul argument. Vous fournissez une valeur à la fois.
int Function(int) add(int a) => (int b) => a + b;
print(add(3)(4)); // 7Application partielle
Fixez maintenant le premier argument et fournissez les autres plus tard. C’est l’application partielle, qui permet de créer des assistants réutilisables et préchargés.
var add3 = add(3);
print(add3(10)); // 13
print(add3(20)); // 23Pourquoi utiliser le currying ?
Le currying vous permet de créer des fonctions spécialisées à partir de fonctions générales sans réécrire la logique. Il est particulièrement utile lorsque vous composez de petits enchaînements.
Type de paramètre fonctionnel
Vous pouvez nommer des types de fonctions complexes avec un alias de type afin de garder des signatures lisibles dans tout votre code.
typedef IntOp = int Function(int);
int apply(int v, IntOp f) => f(v);Raccourci par référence directe
Au lieu d’envelopper une méthode dans une lambda, transmettez directement son nom. Cette référence directe permet de garder des appels clairs et ordonnés.
['1', '2', '3'].map(int.parse).forEach(print);Vérification rapide
Vérifions votre compréhension des fonctions d’ordre supérieur.
Récapitulatif
Les fonctions sont des valeurs : vous pouvez donc les transmettre et les renvoyer. Le currying et l’application partielle transforment des fonctions générales en outils spécialisés. Beau travail ! 🚀
Questions Fréquemment Posées
La leçon « Fonctions d’ordre supérieur et curryfication » est-elle gratuite ?
Oui — le texte complet de « Fonctions d’ordre supérieur et curryfication » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions d’ordre supérieur et curryfication » ?
Passer, retourner et appliquer partiellement des fonctions Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Dart Academy ?
Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fonctions d’ordre supérieur et curryfication » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?
Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fonctions d’ordre supérieur et curryfication
- fold, reduce et expansion
- Itérables paresseux et générateurs avec sync*
- Composer des pipelines de fonctions pures