• [^] # Re: Presque d'accord ...

    Posté par . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 3. Dernière modification le 24 septembre 2014 à 21:47.

    Ce qui manque à Perl selon moi, c'est la possibilité d'utiliser les pipes à l'intérieur d'un programme Perl (un peu comme |> qui existent OCaml comme l'a expliqué Michaël, mais aussi Scala et le cousin d'OCaml, F#).

    En Perl tu ne peux pas faire une pipe qui permette de paralléliser des choses (en OCaml non plus d'ailleurs, pour le moment, je crois), mais tu peux écrire facilement une fonction pipes qui prend en argument une valeur, puis une liste de fonctions, et renvoie la valeur composée de ces fonctions.

    sub pipes {
     my ($val, @subs) = @_;
     foreach my $sub (@subs) {
     $val = $sub->($val);
     }
    }
    my $val = pipes("valeur", \&fun1, \&fun2, ...);

    Et le |> d'OCaml c'est juste (en plus performant) let (|>) x f = f x, c'est juste du sucre syntaxique pour la composition en utilisant le parenthésage de priorité par défaut pour les opérateurs. Bref, n'importe quel langage qui permet de passer des fonctions en argument à d'autres fonctions permet de faire la même chose.