Leer funksionele programmering: hierdie styl van kodering sal jou gedagtes laat waai

openbaarmaking: U ondersteuning help om die webwerf aan die gang te hou! Ons verdien ‘n verwysingsfooi vir sommige van die dienste wat ons op hierdie bladsy aanbeveel.


Alhoewel die meeste programmeringstale bestaan ​​uit insette, uitsette en eksterne veranderlikes wat binne die funksies daarvan ingestel of gebruik kan word, vermy funksionele programmering dit.

Die idee agter funksionele programmering is dat elke keer as ‘n funksie met dieselfde parameters geroep word, dieselfde waarde moet teruggee.

Wat funksionele programmering “funksioneel” maak?

Oorweeg ‘n funksie wat die huidige temperatuur teruggee. Daar word slegs een veranderlike gegee wat aandui of die temperatuur in grade Celsius of Fahrenheit moet teruggestuur word.

Die funksie gebruik dan interne logika om die huidige temperatuur terug te gee – miskien deur ‘n temperatuursensor te lees. Dit word nie as funksionele programmering beskou nie, want elke keer as die funksie gebruik word, kan dit ‘n ander waarde teruggee, selfs al is die funksie-insette dieselfde.

Funksieparameters

Funksionele programmeertale het eersteklas funksies. Dit beteken dat die funksie gebruik kan word asof dit die waarde is wat dit oplewer.

Beskou byvoorbeeld die funksie, dubbel (x), wat twee keer die waarde van sy invoerparameter teruggee. Dus sou dubbel (2) terugkeer 4. Gegewe dat dit ‘n eersteklasfunksie is, sou die kode, dubbel (dubbel (2)) dieselfde wees as die kode, dubbel (4).

Soos met die voorbeeld, kan dit die funksie van ‘n nest as ‘n parameter van ‘n ander ensovoorts koester.

Funksionele programmeringstale laat funksies ook toe om funksies te neem as geslaagde veranderlikes. Let daarop dat dit behels dat die funksie self geslaag word, eerder as net die resultate van die funksie.

Algemene gebruike

Funksionele programmering presteer by die implementering van ingewikkelde wiskundige modellering; om hierdie rede was een van die belangrikste gebruike van funksionele tale tradisioneel akademies.

Baie funksionele tale presteer ook as parallelverwerking geïmplementeer word. Dit is te danke aan hul vermoë om voordeel te trek uit suiwer funksies wat altyd dieselfde waarde teruggee, ongeag die volgorde waarin hulle uitgevoer word.

Ander tale moet hulle bekommerd maak oor rasomstandighede – waar een funksie uitgevoer word voordat die veranderlike wat dit gebruik, op die verwagte waarde gestel word.

Funksionele metodologie

Baie programmeertale wat nie funksioneel is nie, kan met funksionele programmeringsmetodologie gebruik word.

Hierdie ontwikkelingsbenadering kan die meeste voordele van noodsaaklike programmering en funksionele programmering inhou. Sommige van die voordele wat u geneig is om te verloor, is die ingeboude vermoëns om suiwerheid te handhaaf en die ontwikkelaar met daardie verantwoordelikheid te laat.

Sommige tale is eintlik ontwerp met ‘n baster metodologieë, sowel as funksionele programmering wat sommige of al hierdie nadele verwyder.

geskiedenis

Lambda Calculus is waarskynlik die eerste rekenaarstaal, en dit is ‘n funksionele taal. Dit is die eerste keer deur Alonzo Church ontwikkel.

Interessant genoeg is hierdie taal die eerste keer in die dertigerjare geskep – nog lank voordat programmeerbare rekenaars bestaan ​​het. In 1958 het John McCarthy, ‘n professor aan die Massachusetts Institute of Technology’s (MIT), LISP opgestel, wat na die lambda-calculus gemodelleer is en een van die belangrikste funksionele tale is.

Daar word vandag nog baie weergawes van LISP gebruik – sommige is meer funksioneel as ander.

Tale wat funksionele programmering ondersteun

  • D is ontwerp na C ++ om al die voordele te kry, terwyl die waargenome swakhede om agteruit versoenbaar met C te verwyder, verwyder word.

  • Elixir is afgelei en sit bo-op Erlang met sy vermoë om h te skep

    ighly
    gelyktydige toepassings, terwyl die taal makliker is om te skryf en te onderhou.

  • Erlang is hoogs skaalbaar en gelyktydig, wat dit ideaal maak vir telekommunikasie en ander toepassings wat groot hoeveelhede data in ‘n onvoorspelbare volgorde ontvang.

  • F # is ‘n open source multi-paradigma taal wat gereeld binne die

    .NET
    raamwerk. Dit word gereeld gebruik vir die vinnige ontwikkeling van analitiese sagteware.

  • Haskell is ‘n suiwer funksionele taal wat Lambda Calculus gebruik.

  • ML word gebruik in wiskundige, wetenskaplike, finansiële, analitiese en ander soorte toepassings. Een van sy sterk punte is om sagteware te maak om ander programme te manipuleer.

  • OCaml of Objektief Caml, is ‘n gratis taal wat oop is en gebaseer is op Caml. Dit is geneig om baie liggewig programme te skep wat hulle help om vinniger te laai en te hardloop as dié wat in ander tale geskep is.

  • Scala is ontwerp om maklik in Java en ander objekgeoriënteerde tale geïntegreer te word. Scala maak gebruik van funksionele programmering en laat dit toe in verspreide en gelyktydige toepassings.

  • Die skema is gebaseer op die sintaksis van LISP en die struktuur van ALGOL. Vanweë die eenvoud daarvan, word die skema as ‘n inleiding tot programontwerp in baie rekenaarwetenskapkursusse gebruik om enkele van die rekenaarprogrammeringsbeginsels te wys.

  • Swift is ontwerp met die doel om fouttolerant te wees, vinnig te ontwikkel en ekspressief te wees.

hulpbronne

Funksionele programmeringsbronne is gewoonlik gefokus op ‘n spesifieke taal, soos Scala. Maar selfs wanneer dit is, bied hulle waardevolle inligting. Moet dus nie skaam wees net omdat ‘n artikel of boek ‘n taal gebruik wat u nie gebruik nie.

tutoriale

  • ‘N Praktiese inleiding tot funksionele programmering: Mary Rose Cook se bespreking van die gebruik van funksionele programmeringstegnieke met noodsaaklike tale.

  • Funksionele programmeringsbeginsels: ‘n goeie teoretiese bespreking van funksionele programmering.

  • Moenie bang wees vir funksionele programmering nie: is funksionele programmering die ‘mustachioed hipster of programmeringsparadigmas’? Vind hier uit.

  • Inleiding tot funksionele programmering in Swift: ‘n gedetailleerde inleiding tot funksionele programmering met behulp van Swift.

  • Waarom is al die funksionele programmeringsprogramme so wiskundig? – ‘n bespreking oor Stack Exchange wat die moeite werd is om te lees.

boeke

  • ‘N Inleiding tot funksionele programmering deur Lambda Calculus (2011) deur Greg Michaelson: ‘n inleiding wat aan die begin begin.

  • Functional Thinking: Paradigm Over Syntax (2014) deur Neal Ford: ‘n gevorderde boek oor funksionele programmeringsbeginsels.

  • The Magical World of Functional Programming: Part I: Thinking Functional (2014) deur K Anand Kumar: ‘n kort e-boek oor die grondbeginsels van funksionele programmering.

  • Becoming Functional (2014) deur Joshua Backfield: ‘n inleiding tot funksionele programmering vir mense wat vertroud is met imperatiewe en objekgeoriënteerde programmering.

opsomming

Alhoewel funksionele programmering baie goed is vir sommige toepassings, vind baie programmeerders die gemak van noodsaaklike tale, baie makliker om hul koppe om te draai.

Maar vir wiskundige en meer formele kodering is funksionele programmering ‘n goeie keuse. En die begrip van die beginsels van funksionele programmering kan van groot nut wees vir alle programmeerders.

Verdere leeswerk en bronne

Ons het meer gidse, tutoriale en infografika met betrekking tot kodering en ontwikkeling:

  • F # Programmering: vind meer uit oor funksionele programmering in die NET-raamwerk.

  • Erlang-programmering Inleiding en bronne: ‘n vroeë funksionele taal wat gebruik word om parallelle kode te skep.

  • Vinnige inleiding en bronne: dit is een van die nuutste C-agtige tale. Die toekoms van programmering? Vind hier uit!

Watter kode moet u leer??

Verward oor watter programmeringstaal u moet leer kodeer? Kyk na ons infografiese inligting oor watter kode u moet leer?

Dit bespreek nie net verskillende aspekte van die tale nie, dit beantwoord belangrike vrae soos: “Hoeveel geld sal ek vir die programmering van Java verdien?”

Watter kode moet u leer?
Watter kode moet u leer??

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map