Às vezes, começarei a escrever uma cadeia de chamadas de método no Perl 6 REPL, como:
".".IO.dir.grep(...).map(...).
... e então percebo que o que quero fazer com a lista final é imprimir todos os elementos em sua própria linha. Eu esperaria que as sequências tivessem algo como um each
método para que eu pudesse terminar a cadeia .each(*.say)
, mas não há nenhum método como esse que eu possa encontrar. Em vez disso, tenho que voltar ao início da linha e preceder .say for
. Parece que interrompe o fluxo dos meus pensamentos.
É um pequeno aborrecimento, mas me parece uma omissão tão flagrante que me pergunto se estou perdendo alguma alternativa fácil. Os únicos em que consigo pensar são ».say
e .join("\n").say
, mas o primeiro pode operar com elementos fora de ordem (se bem entendi) e o segundo constrói uma única sequência que pode ser problemáticamente grande, dependendo da lista de entrada.
True
valores do mesmo tamanho que a lista de entrada. Não é ideal.".".IO.dir.grep(*.contains("e")).map(*.uc).map: {.say; Empty}
fará o mesmo, mas mencione apenas uma lista vazia no REPLtell
o manipulador de arquivos externo antes e depois do comando e comparando-os, eu acho? então algo pode estar errado com essa lógica.Você pode rolar sozinho.
Se você gosta disso, aqui está a sua primeira oportunidade de módulo CPAN .
fonte
.&each()
, caso eles não desejem interferir no aumento..&each()
formato vem com desvantagens, como a necessidade de manter uma única linha (ou usar um pouco pesado em\
todo o lugar).