Je reprends ici le thread plus haut qui devenait ingérable...
Un autre exemple courant est le branchement d'un callback sur un événement : typiquement dans gtk, par exemple avec le code suivant :
sub run_my_dialog() {
my $results = 1;
my $dialog = make_gtk_dialog();
$dialog->button1()->signal_connect(clicked => sub { $results = 2 })
$dialog->run();
return $results;
}
La possibilité d'écrire une fonction anonyme qui soit une closure est ici particulièrement pratique pour "sauver" une valeur qui sera disponible lorsque le dialogue sera fermé. Sans closure, écrire cette fonction devient beaucoup plus lourd (tu peux l'écrire en Python ?).
Voilà un exemple qui n'est pas une transcription littérale du code perl, mais qui je pense reste dans le même esprit ; teste-le et dis-moi ce que tu en penses:
# Python et formes fonctionnelles (reloaded)
Posté par bobert . En réponse au message de la puissance de (beep) pour trouver un truc simple en 2 minutes. Évalué à 2.
sub run_my_dialog() { my $results = 1; my $dialog = make_gtk_dialog(); $dialog->button1()->signal_connect(clicked => sub { $results = 2 }) $dialog->run(); return $results; }La possibilité d'écrire une fonction anonyme qui soit une closure est ici particulièrement pratique pour "sauver" une valeur qui sera disponible lorsque le dialogue sera fermé. Sans closure, écrire cette fonction devient beaucoup plus lourd (tu peux l'écrire en Python ?).