• [^] # Re: Méconnaissance

    Posté par . En réponse au journal Compilateur et Monad Reader. Évalué à 2.

    Bon, question conne, mais, lorsque tu utilises tout le temps le même paramètre, est-ce qu'il n'est pas d'usage d'utiliser des fermetures dans ce cas (ou des foncteurs, ou...)? Genre, en Perl:

    my %context = ( prop1 => val1, prop2 => val2, ... );
    # on fait des trucs avec le contexte, 
    # bla
    # bla
    # bla
    # Puis :
    my $applyCtxt = sub { 
     my ($funcref, $fieldname) = @_;
     &$funcref($context{$fieldname});
    };
    #exemple à la con qui ne sert vraiment à rien
    for my $fieldname (sort keys %context)
     for my $func (\&readStuff, \&writeStuff, \&squareMe, \&doTheBoogieWoogie) {
     &$applyContxt($func, $fieldname);
     }
    }

    ... Chépasichuiclair. J'ai pas relu le journal, donc j'ai peut-être raté une partie du contexte, mais quand je relis ton résumé de ce que tu cherchais à faire, il me semble que ton contexte est « global », et peut donc être « raccourci » par l'utilisation de fermetures. Évidemment, dans le contexte de Perl, il n'y a pas la possibilité de proposer un opérateur infixe qui ferait le pipelining des fonctions comme en OCaml, mais je n'ai pas l'impression que ce soit ce que tu cherchais à faire de toute manière.

    Qu'est-ce que j'ai raté ?