Perl6 :: currying.

Perl6 :: Currying é um currying de sub-rotina Perl 6 para Perl 5.
Baixe Agora

Perl6 :: currying. 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 :: currying. Tag


Perl6 :: currying. Descrição

Perl6 :: Currying é um currying de sub-rotina perl 6 para Perl 5. Perl6 :: Currying é um currying Perl 6 sub-rotina para Perl 5.Synopsis Use Perl6 :: currying; Sub Adicionar ($ A, $ B) {$ a + $ b} # Defina um sub com params nomeados Imprimir Adicionar (1,2); # Chamar meu $ incr = add.prebind (a => 1); # Bind The $ a argumento para 1 # Para criar uma sub-rotina de incremento Imprimir $ incr -> (3), "N"; # Incremento Um número O módulo Perl6 :: Currying permite que você experimente a nova sintaxe de função de maior encomenda Perl 6 em Perl 5.in Perl 6 Qualquer sub-rotina pode ser "parcialmente ligada". Ou seja, você pode fornecer alguns de seus argumentos e, assim, criar outra sub-rotina que chama o original com esses argumentos automaticamente fornecidos. Os parâmetros de aroutine são parcialmente ligados ao método Prebind na sub-rotina. Esta chamada de método retorna uma referência a uma nova sub-rotina que chama a sub-rotina original, inserindo em sua lista de argumentos os argumentos de prebundos. Por exemplo: # perl 6 código sub divide ($ numerador, $ denominator) {return $ numerador / $ denominador; } Meu $ halve = divide.prebind (denominador => 2); note que é necessário usar o e sigil para indicar que o código do método :: Prebind deve ser chamado em uma divisão de objeto de código, não o que :: Prebind de o objeto retornado pela divisão de chamadas. Para obter este último, escreveríamos: dividir (). Prebind (...) ou: dividir.Prebind (...) Ter prebound o denominador, se agora ligarmos para a sub-rotina referida por $ halve o efeito é chamar Divida com um denominador fornecido automagicamente de 2. isto é: # Perl 6 código de impressão de impressão (42,2); # chama divide ... Imprime 21 Imprimir $ halve (42); # chama Divide ... Imprime 21 Também é possível prebind todos os argumentos de uma sub-rotina, de uma só vez: # Perl 6 código Meu $ PI_Aprox = Divide.Prebind (numerador => 22, denominador => 7); Imprimir $ PI_Aprox (); # imprime 3.14285714285714OR em etapas: # perl 6 código meu $ pi_legislado = $ halve.prebind (numerador => 6); Imprimir $ PI_Leglated (); # imprime que não precisamos do sigil antes de $ halve, já que esta sintaxe é inequivocamente uma chamada (através de uma referência a um objeto de código) para codificar :: Prebind.Você também pode usar o operador perl 6 aliasing (: =) para criar novas sub-rotinas nomeadas, ligando parcialmente as existentes. Por exemplo: # Perl 6 código recíproco: = divide.prebind (numerador => 1); Imprimir recíproco (10) # Imprime 0,1Parameter Ligação no perl 5A Perl6 :: Currying Module permite que você use a mesma sintaxe no Perl 5.That, você pode fornecer alguns dos argumentos a um (especialmente prototipado) perl 5 sub-rotina e, portanto, Crie outra sub-rotina que chama o original com esses argumentos automaticamente fornecidos. A nova sub-rotina é criada chamando o método Prebind na sub-rotina original. Por exemplo: # Perl 5 código Use Perl6 :: Currying; Sub dividir ($ numerador, $ denominator) {return $ numerador / $ denominador; } Meu $ Halve = Divida.Prebind (denominator => 2); Notas: Como o exemplo acima implica, Perl6 :: Currying dá-lhe a capacidade (limitada) para declarar as sub-rotinas perl 5 com parâmetros nomeados. Atualmente, esses parâmetros devem ser uma lista de escalares separados por vírgulas, conforme mostrado acima. Cada parâmetro torna-se uma variável escalar léxica dentro do corpo da sub-rotina. Para compatibilidade de encaminhar, para parâmetros Prebind em Perl 5, a sintaxe de chamadas do método Perl 6 ($ OBJREF.METHNAME (...)) é usado, em vez do Perl 5 Sintaxe ($ OBJRef-> MethodeName (...)). Para ser consistente com o Perl 6, ainda é necessário usar o e sigil para indicar que o método a ser chamado é Código :: Prebind, não o prebind do objeto retornado Ao chamar Divide.Aving prebound o denominador, se agora ligarmos para a sub-rotina referida por $ halve, o efeito é chamar de divisão com um denominador fornecido automagicamente de 2. isto é: # perl 5 códigos de impressão Divide (42,2); # chama divide ... Imprime 21 Imprimir $ halve -> (42); # Chamadas Divida ... Imprime 21 Note que, uma vez que são apenas as chamadas normais de sub-rotinas Perl 5, a sintaxe de referência de chamada Perl 5 ($ subref -> (...)) é usada, em vez da sintaxe perl 6 ($ Subref. (...)). Também é possível prebind todos os argumentos de uma sub-rotina, todos de uma vez: # Perl 5 Código Use Perl6 :: Currying; meu $ PI_Aprox = Divide.Prebind (numerador => 22, denominator => 7); Imprimir $ PI_Aprox -> (); # imprime 3.14285714285714OR em etapas: # Perl 5 código Use Perl6 :: currying; meu $ pi_legislated = $ halve.prebind (numerador => 6); Imprimir $ PI_Leglated (); # imprime 3Você também pode usar perl 5 typeglobs para criar novas sub-rotinas nomeadas, ligando parcialmente as existentes. Por exemplo: # perl 5 código * recíproco = divide.prebind (numerador => 1); Imprimir Recíproco (10) # Imprime 0.1Requirements: · Perl


Perl6 :: currying. Software Relacionado

XML :: Regras.

XML :: Regras é um módulo Perl que pode analisar as tags XML e processo por regras a partir de folhas. ...

182

Download

Svggraf

SVGGraph é uma extensão Perl para criar gráficos / diagramas / gráficos / gráficos SVG. ...

146

Download