Parfois, je vais commencer à écrire une chaîne d'appels de méthode sur Perl 6 REPL, comme:
".".IO.dir.grep(...).map(...).
... et puis je me rends compte que ce que je veux faire avec la liste finale, c'est imprimer chaque élément sur sa propre ligne. Je m'attendrais à ce que les séquences aient quelque chose comme une each
méthode pour pouvoir terminer la chaîne .each(*.say)
, mais il n'y a pas de méthode comme celle-là que je puisse trouver. Au lieu de cela, je dois retourner au début de la ligne et ajouter .say for
. J'ai l'impression que ça brise le flux de mes pensées.
C'est une gêne mineure, mais cela me semble être une omission si flagrante que je me demande si je manque une alternative facile. Les seuls auxquels je peux penser sont ».say
et .join("\n").say
, mais les premiers peuvent fonctionner sur les éléments dans le désordre (si je comprends bien) et les seconds construisent une seule chaîne qui pourrait être problématiquement grande, selon la liste d'entrée.
True
valeurs de la même longueur que la liste d'entrée. Pas idéal.".".IO.dir.grep(*.contains("e")).map(*.uc).map: {.say; Empty}
fera de même, mais ne mentionne qu'une liste vide dans le REPLtell
le descripteur de fichier out avant et après la commande et les compare, je pense? donc quelque chose pourrait mal tourner avec cette logique.Vous pouvez rouler le vôtre.
Si vous aimez cela, il y a votre opportunité de module First CPAN ici.
la source
.&each()
, au cas où ils ne voudraient pas se brouiller avec l'augmentation..&each()
format présente des inconvénients, comme le fait d'être tenu de s'en tenir à une seule ligne (ou d'utiliser un peu lourd\
partout).