Perl6 :: Currying

PERL6 :: Currying is een PERL 6 Subroutine-currying voor PERL 5.
Download nu

Perl6 :: Currying Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Damian Conway
  • Uitgever website:
  • http://search.cpan.org/~dconway/

Perl6 :: Currying Tags


Perl6 :: Currying Beschrijving

PERL6 :: Currying is een PERL 6 Subroutine-currying voor PERL 5. Perl6 :: Currying is een Perl 6 subroutine Curry voor Perl 5.SYNOPSIS gebruik Perl6 :: Currying; Sub ($ a, $ b) {$ a + $ b} # een sub Definieer met benoemde params printen add (1,2); # Noem het mijn $ INCR = add.prebind (a => 1); # Bind de $ een argument tot 1 # om een toename subroutine druk $ Incr creëren -> (3), "n"; # Verhoging een numberThe Perl6 :: Currying module kunt u proberen de nieuwe Perl 6 expliciete functie van hoger niveau syntax in Perl 5.In Perl 6 ieder subroutine kan worden "gedeeltelijk gebonden". Dat wil zeggen, kunt u een aantal van haar argumenten te leveren en daarmee een andere subroutine dat het origineel met deze argumenten automatisch supplied.Subroutine parameters worden gedeeltelijk gebonden door te bellen naar de Prebind methode op subroutine aanroept. Deze methode oproep retourneert een verwijzing naar een nieuwe subroutine dat de oorspronkelijke subroutine noemt, het invoegen in de lijst met argumenten de vooraf gebonden argumenten. Bijvoorbeeld: # Perl 6 code sub verdeel ($ teller, $ noemer) {return $ teller / $ noemer; } My $ halve = divide.prebind (noemer => 2); Merk op dat het noodzakelijk is om de en sigil gebruiken om aan te geven dat de methode CODE :: Prebind moet worden opgeroepen een CODE object kloof, niet de Whatever :: Prebind van de Whatever wordt geretourneerd door te bellen naar kloof. Om dit laatste te krijgen, zouden we schrijven: verdeel () Prebind (...) of:. Divide.prebind (...) Het hebben van vooraf gebonden de noemer, als we nu kunnen bellen door $ bedoelde subroutine halveren het effect is op de oproep kloof met automagically geleverd noemer 2. Dat wil zeggen: # 6 Perl code drukken delen (42,2); # Oproepen kloof ... prints 21 afdrukken $ halve (42); # Oproepen verdelen ... prints 21 Het is ook mogelijk om alle argumenten van een subroutine Prebind, of allemaal tegelijk: # Perl 6 code mijn $ pi_approx = divide.prebind (teller => 22, noemer => 7); print $ pi_approx (); # Prints 3.14285714285714or in fasen: # Perl 6 code mijn $ pi_legislated = $ halve.prebind (teller => 6); print $ pi_legislated (); # Drukt 3Note dat we hebben geen behoefte aan het en sigil voor $ halveren omdat deze syntaxis is ondubbelzinnig een oproep (door middel van een verwijzing naar een CODE object) om CODE :: prebind.You kunt ook de Perl 6 aliasing operator (: =) genoemde nieuwe subroutines creëren door het gedeeltelijk bestaande bindend. Bijvoorbeeld: # 6 Perl code reciproke: = divide.prebind (teller => 1); afdrukken reciproke (10) # prints 0.1Parameter verbindend in Perl 5 De Perl6 :: Currying module kunt u dezelfde syntax Perl 5.That gebruikt wordt, kan een aantal argumenten leveren aan een (speciaal prototype) Perl 5 subroutine en daardoor maakt u een andere subroutine dat de oorspronkelijke gesprekken met deze argumenten automatisch supplied.The nieuwe subroutine wordt gemaakt door te bellen naar het Prebind methode op de originele subroutine. Bijvoorbeeld: # Perl 5 code gebruik Perl6 :: Currying; sub verdeel ($ teller, $ noemer) {return $ teller / $ noemer; } My $ halve = divide.prebind (noemer => 2); Opmerkingen: Als het bovenstaande voorbeeld aangeeft, Perl6 :: Currying geeft u de (beperkte) mogelijkheid om Perl 5 subroutines verklaren met benoemde parameters. Momenteel parameter moet een lijst met door komma's gescheiden scalaire grootheden, zoals hierboven getoond. Elke parameter wordt een lexicale scalaire variabele binnen het lichaam van de subroutine.For voorwaartse compatibiliteit te Prebind parameters Perl 5, Perl 6 methodeaanroep syntax ($ objref.methodname (...)) wordt gebruikt in plaats van de Perl 5 syntax ($ objref-> methodname (...)). In overeenstemming met Perl 6 te zijn, het is nog steeds nodig om de en sigil gebruiken om aan te geven dat de methode die moet worden gebeld, CODE :: Prebind, niet de Prebind van het object geretourneerd door te bellen naar divide.Having vooraf gebonden de noemer, als we nu een beroep bedoelde subroutine met $ halveren het effect is te verdelen bellen met een automagisch geleverd noemer van 2. Dat wil zeggen: # Perl 5 code afdruk divide (42,2); # Oproepen kloof ... prints 21 afdrukken $ halve -> (42); # Oproepen verdelen ... drukt 21Note dat, aangezien deze zijn gewoon normaal Perl 5 subroutine oproepen, de Perl 5 call-through-reference syntax ($ subref -> (...)) wordt gebruikt, in plaats van de Perl 6 syntax ($ .. subref (...)) het is ook mogelijk om alle argumenten van een subroutine Prebind, of allemaal tegelijk: # Perl 5 code gebruik Perl6 :: Currying; mijn $ pi_approx = divide.prebind (teller => 22, noemer => 7); print $ pi_approx -> (); # Prints 3.14285714285714or in fasen: # Perl 5 code gebruik Perl6 :: Currying; mijn $ pi_legislated = $ halve.prebind (teller => 6); print $ pi_legislated (); # Prints 3U kunt ook gebruik maken van Perl 5 typeglobs genoemde nieuwe subroutines creëren door het gedeeltelijk bestaande bindend. Bijvoorbeeld: # 5 Perl code * reciproke = divide.prebind (teller => 1); afdrukken wederzijdse (10) # prints 0.1Requirements: · Perl


Perl6 :: Currying Gerelateerde software

XML :: Regels

XML :: Regels is een PERL-module die XML- en proceslabels kan ontleden door regels vanaf bladeren. ...

182

Downloaden

Svggraph

SVGGRAPH is een PERL-extensie voor het maken van SVG-grafieken / diagrammen / grafieken / percelen. ...

146

Downloaden

Math :: Basearith

MATH :: Basearith is een PERL-extensie voor representatie van gemengde basisnummer (zoals APL-coördinatie / decodeer). ...

169

Downloaden