Perl6 :: Reunir

Perl6 :: Reunir é um módulo Perl que implementa a estrutura de controle Perl 6 'Reunir / Take' em Perl 5.
Baixe Agora

Perl6 :: Reunir Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Damian Conway
  • Site do editor:
  • http://search.cpan.org/~dconway/

Perl6 :: Reunir Tag


Perl6 :: Reunir Descrição

Perl6 :: Reunir é um módulo Perl que implementa a estrutura de controle Perl 6 'Reunir / Take' em Perl 5. Perl6 :: Reunir é um módulo Perl que implementa a estrutura de controle Perl 6 'Reunir / Take' em Perl 5.Synopsis Use Perl6 :: Reunir; @list = Reunir {# tente extrair números ímpares e nomes ímpares ... para (@data) {if (/ (um | três | cinco | nove) $ /) {tomar QQ {'$ _'}; } Elsif (/ ^ D + $ / $ _% 2) {Take; }} # Mas use o conjunto padrão se não houver algum de também ... Tome @defaults a menos que seja reunido; } BackgroundPerl 6 fornece uma nova estrutura de controle - Reunir - que permite que listas sejam construídas proceduralmente, sem a necessidade de uma variável temporária. Dentro do bloco / fechamento controlado por um recolhimento qualquer chamada para levar empurra a lista de argumentos de chamada para uma matriz implicitamente criada. Retorna o número de elementos que levou. No final da execução do bloco, o coletar retorna a lista de valores armazenados na matriz (em um contexto de lista) ou uma referência à matriz (em um contexto escalar). Por exemplo, Em vez de escrever: # Perl 6 Código ... Imprimir Do Meu @WAnted; para -> $ line {push @wanted, $ linha se $ linha ~~ / d /; Empurre @WAnted, - $ Line se algum_Outro_Condition ($ line); } push @wanted, 'eof'; @procurado; }; em perl 6 podemos escrever: # perl 6 código ... imprimir recolher {para -> $ line {take $ line se $ linha ~~ / d /; Take - $ Line se algum_Outro_Condition ($ line); } tomar 'eof'; } e em vez de: $ text = do {my $ string; para {próximo se / ^ # | ^ s * $ /; Última if / ^ __ __ N $ /; $ string. = $ _; } $ string; }; Poderíamos escrever: $ text = ~ Reunir {para {próximo se / ^ # | ^ s * $ /; Última if / ^ __ __ N $ /; pegar; }} Como o exemplo acima implica, se a tomada for chamada sem nenhum argumento, é necessário o tópico atual. Há também uma terceira função - reunida - que retorna uma referência à matriz implícita sendo coletada. Isso é útil para o manuseio de padrões: @odds = Reunir {para @data {tomar se $ _% 2; tome to_num ($ _) se / $ /; } Tome 1,3,5,7,9 a menos que seja reunido; } Também é útil para criar a matriz implícita por algum processo mais complexo do que pelo simples empurrão seqüencial. Por exemplo, se necessário para prever uma contagem de itens não numéricos: @odds = Reunir {para @data {tomar se $ _% 2; tome to_num ($ _) se / $ /; } não colhido, + grep (/ / i, @data); } Conceitualmente recolher / tomar é a forma generalizada a partir da qual o mapa e o gnep derivam. Ou seja, poderíamos implementar essas duas funções como: sub mapa ($ Transform is code, * List) {Retwar Retwing {para @list {take $ transform ($ _)}}; } Sub Grep ($ selecionado é código | Regra, * Lista @ List) {Retwar Reunir {para @list {take quando $ seleccionado}}} um recolhimento também é uma maneira muito útil de curto-circuito a construção de uma lista. Por exemplo, suponha que desejemos gerar uma única lista classificada de linhas de dois arquivos classificados, mas apenas até a primeira linha que eles têm em comum. Poderíamos reunir as linhas assim: meu @merged_diff = reúne {my $ a = <$ fh_a>; Meu $ B = <$ fh_b>; loop {se definido todos $ a, $ b {se $ a eq $ b {Último} # duplicado significa fim de lista elsif $ a lt $ b {take a; $ a = <$ fh_a>; } else {tomar $ b; $ B = <$ fh_b>; }} elsif definiu $ a {take $ a; $ a = <$ fh_a>; } elsif definiu $ b {take $ b; $ B = <$ fh_b>; } else {Último}}} Requisitos: · Requisitos de Perl: · Perl.


Perl6 :: Reunir Software Relacionado

Classeine :: SDK.

Classeine :: SDK Project é um conjunto de bibliotecas de classe de finalidade geral escrita em C para Netbsd. ...

138

Download