Perl6 :: Currying

Perl6 :: Currying es una subrutina Perl 6 Curreing para PERL 5.
Descargar ahora

Perl6 :: Currying Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Damian Conway
  • Sitio web del editor:
  • http://search.cpan.org/~dconway/

Perl6 :: Currying Etiquetas


Perl6 :: Currying Descripción

Perl6 :: Currying es una subrutina Perl 6 Curreing para PERL 5. Perl6 :: Currying es una subrutina PERL 6 currying para Perl 5.Synopsis Use Perl6 :: Currying; Sub ADD ($ A, $ B) {$ A + $ B} # Defina un Sub con nombrado Imprimir Add (1,2); # Llámelo mi incR = ADD.PREBIND (A => 1); # Vincular el argumento $ a 1 # para crear un incremento de subrutina de subrutina $ incR -> (3), "n"; # Incrementar un número El módulo PERL6 :: Currying le permite probar la nueva sintaxis de función de orden superior explícito PERL 6 en Perl 5.in Perl 6, cualquier subrutina puede ser "parcialmente vinculada". Es decir, puede suministrar algunos de sus argumentos y, por lo tanto, crear otra subrutina que llame al original con esos argumentos que se suministran automáticamente. Los parámetros de subrutina están parcialmente unidos al llamar al método de Prebind en la subrutina. Esta llamada de método devuelve una referencia a una nueva subrutina que llama a la subrutina original, insertando en su argumento enumerar los argumentos prebundentes. Por ejemplo: # Perl 6 Código Sub Divide ($ Numerator, $ Denominator) {return $ numerator / $ denominator; } My $ HALVE = Divide.Prebind (Denominator => 2); Tenga en cuenta que es necesario usar el y SIGIL para indicar que el código de método :: Prebind se debe llamar a una división de objetos de código, no lo que sea :: PREBIND DE El objeto de cualquier objeto devuelto llamando división. Para obtener este último, escribiríamos: Divide (). Prebind (...) o: Divide.Prebind (...) Tendiendo el denominador, si ahora llamamos a la subrutina a la que se hace referencia de $ reduce el efecto, el efecto es llamar Divida con un denominador suministrado automáticamente de 2. Es decir: # PERL 6 Código de impresión Divide (42,2); # llama a dividir ... Imprime 21 Imprimir $ HEX 1 (42); # Llamadas divididas ... Imprime 21 También es posible superar todos los argumentos de una subrutina, ya sea a la vez: # Perl 6 Código MY $ PI_PROX = Divide.Prebind (numerator => 22, denominator => 7); Imprimir $ PI_PROX (); # imprime 3.14285714285714or en etapas: # PERL 6 CÓDIGO MIS $ PI_LEGISLATE = $ HAL HALVO.PROBIND (NUMERADOR => 6); Imprimir $ PI_Legislado (); # Imprime 3Note que no necesitábamos el y SIGIL antes de que se reduce a la mitad, ya que esta sintaxis es una llamada inequívoca (a través de una referencia a un objeto de código) a Código :: Prebind. También puede usar el operador de aliasing Perl 6 (: =) Para crear nuevas subrutinas nombradas por las existentes parcialmente vinculantes. Por ejemplo: # Perl 6 Código Reciprocal: = Divide.Prebind (numerator => 1); Imprima reciprocal (10) # Imprime 0.1Parameter Enlace en Perl 5El PERL6 :: Currying Module le permite usar la misma sintaxis en Perl 5. Eso es, puede suministrar algunos de los argumentos a una subrutina Perl 5 (especialmente prototipada) y, por lo tanto, Cree otra subrutina que llame al original con esos argumentos se suministran automáticamente. La nueva subrutina se crea llamando al método Prebind en la subrutina original. Por ejemplo: # Perl 5 Código Use Perl6 :: Currying; Sub Divide ($ Numerator, $ Denominator) {return $ numerator / $ denominador; } My $ halveve = divinde.prebind (denominador => 2); Notas: Como lo implica el ejemplo anterior, Perl6 :: Currying le brinda la capacidad (limitada) para declarar las subrutinas de Perl 5 con parámetros con nombre. Actualmente, esos parámetros deben ser una lista de escalares separados por comas, como se muestra arriba. Cada parámetro se convierte en una variable escalar léxica dentro del cuerpo de la subrutina. Para la compatibilidad delantera, para prejuntar los parámetros en PERL 5, se usa la sintaxis de la llamada de método Perl 6 ($ Objref.MethodName (...)), en lugar de la Perl 5 Sintaxis ($ Objref-> Methodname (...)). Para ser consistente con PERL 6, todavía es necesario usar el y SIGIL para indicar que el método que se debe llamar es el código :: Prebind, no el prebind del objeto devuelto. Al llamar a Divide.HAVING hasta el denominador, si ahora llamamos a la subrutina a la que se hace referencia a la mitad, el efecto es llamar a la división con un denominador suministrado automáticamente de 2. Es decir: # Perl 5 código de impresión Divide (42,2); # llama a la división ... Imprime 21 Imprimir $ HEXVE AVE -> (42); # Llamadas divididas ... Imprime 21Note que, dado que, ya que son solo llamadas normales de subrutina Perl 5, se usa la sintaxis de referencia de llamada Perl 5 ($ SUBREF -> (...)), en lugar de la sintaxis perl 6 ($ SUBREF. (...). También es posible prestar todos los argumentos de una subrutina, ya sea todos a la vez: # Perl 5 Código Use Perl6 :: Currying; My $ PI_PROX = Divide.Prebind (Numerator => 22, Denominator => 7); Imprimir $ PI_PROX -> (); # imprime 3.14285714285714or en etapas: # Perl 5 Código Use Perl6 :: Currying; MY $ PI_LEGISLATED = $ HAL HALVE.PREBIND (NUMERADOR => 6); Imprimir $ PI_Legislado (); # Las imprimibles también pueden usar PERL 5 Typeglobs para crear nuevas subrutinas nombradas por las que vinculan parcialmente las existentes. Por ejemplo: # PERL 5 CODE * reciprocal = divide.prebind (numerator => 1); Imprimir recíproco (10) # Imprime 0.1Requirements: · Perl


Perl6 :: Currying Software relacionado

XML :: Reglas

XML :: Las reglas son un módulo PERL que puede analizar las etiquetas XML y procesar mediante reglas a partir de las hojas. ...

182

Descargar

Svggraph

SVGGRAPH es una extensión Perl para crear gráficos / diagramas / gráficos / gráficos / gráficos SVG. ...

146

Descargar