0Pricing
Dart Academy · Leçon

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)); // 16

Que 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)); // 6

Syntaxe 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)); // 11

Dé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)); // 7

Application 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)); // 23

Pourquoi 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

  1. Fonctions d’ordre supérieur et curryfication
  2. fold, reduce et expansion
  3. Itérables paresseux et générateurs avec sync*
  4. Composer des pipelines de fonctions pures
← Retour à Dart Academy