fp

Een bibliotheek voor het programmeren in een functionele stijl
Download nu

fp Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Stevan Little
  • Uitgever website:
  • http://search.cpan.org/~stevan/

fp Tags


fp Beschrijving

Een bibliotheek voor het programmeren in een functionele stijl FP is een PERL-module, een experiment in functionele programmering. Het gebruikt niets anders dan een combinatie van; Subroutines, de @_-array en een paar ingebouwde operators om een stijl van functionele programmering te implementeren. None van de hierboven is dat zo interessant is totdat u bedenkt dat op geen enkel moment variabele opdracht (=), indien uitspraken of niet-recursief was iteratie gebruikt. Hoewel, wees helemaal eerlijk, er is eigenlijk twee keer wanneer de = operator in de hele module wordt gebruikt. De eerste keer is om de versie van de module toe te wijzen, de tweede keer binnen de importroutine, maar die zijn eigenlijk geen onderdelen van deze bibliotheek en echt meer infastructuur sowieso.Variabele opdracht wordt niet gebruikt, in plaats daarvan, in plaats daarvan de inhoud van de array van @_ toegankelijk / gemanipuleerd en doorgegeven als de terugkeer van waarden van functies. Recursie is de enige manier van iteratie, we gebruiken geen van PERL's ingebouwde iteringsmechanismen (voor, foreach, terwijl, enz.). Alle functies zijn niet-destructief voor hun inputs, en bijna alles retourneert een reeks van een soort, dus functie call chaining werkt vrij goed. Het exploiteert alleen alleen op vlakke lijsten, aangezien PERL alle arrays oplevert die als argumenten zijn gegeven. Deze code is ook geschreven zonder bijwerkingen. Dit betekent dat elke functie is geschreven om een algoritme uit te drukken die het resultaat oplevert in plaats van het resultaat te maken door de dwang van bijwerkingen. Hier is een voorbeeld van wat ik bedoel, met behulp van even / oneven predikaatfuncties. Met bijwerkingen: sub is_even {(($ _ % 2) == 0); } sub is_odd {(($ _ % 2)! = 0); } Zonder Side Efffecten: sub is_even {($ _ <= 0)? TRUE: IS_ODD ($ _ - 1); } sub is_odd {($ _ <= 0)? FALSE: IS_EVEN ($ _ - 1); } Synopsis Gebruik FP; # Filter alles zijn de even nummersfilter (functie {IS_EVEN (hoofd (@_))}, bereik (1, 100)); # Split de touw, krijg unieke lijst uit het # Haal dan de lengte van die lijst en controleer # die gelijk is aan 26 is_equal_to (Len (uniek (explodeer ("de snelle bruine vos sprong over de luie hond en rende het weg "))), 26); # De som van de cijfers 1 tot en met 10 is 55 IS_EQUAL_TO (som (bereik (1, 10)), 55); Vereisten: · Perl


fp Gerelateerde software