Naučite se funkcionalnega programiranja: Ta slog kodiranja bo razburil vaš um

Razkritje: Vaša podpora pomaga pri vzdrževanju spletnega mesta! Za nekatere storitve, ki jih priporočamo na tej strani, zaslužimo naročnino.


Medtem ko je večina programskih jezikov sestavljena iz vhodov, izhodov in zunanjih spremenljivk, ki jih je mogoče nastaviti ali uporabljati znotraj svojih funkcij, se funkcionalno programiranje temu izogne..

Ideja funkcionalnega programiranja je, da mora vsakič, ko se funkcija pokliče z enakimi parametri, vrniti isto vrednost.

Kaj naredi funkcionalno programiranje “funkcionalno”?

Razmislite o funkciji, ki vrne trenutno temperaturo. Vnese se samo ena spremenljivka, ki kaže, ali naj se temperatura vrne v stopinjah Celzija ali Fahrenheita.

Funkcija nato z notranjo logiko vrne trenutno temperaturo – morda z branjem temperaturnega senzorja. To se ne šteje za funkcionalno programiranje, ker lahko vsakič, ko se funkcija uporablja, vrne drugačno vrednost, tudi če so vhodi funkcij enaki.

Funkcijski parametri

Funkcijski programski jeziki imajo prvovrstne funkcije. To pomeni, da se funkcija lahko uporablja, kot da bi bila vrednost, ki jo vrača.

Na primer, upoštevajte funkcijo double (x), ki vrne dvakratno vrednost vhodnega parametra. Torej bi se dvojno (2) vrnilo 4. Glede na to, da gre za prvovrstno funkcijo, bi bila koda, dvojna (dvojna (2)), enaka kot koda, dvojna (4).

Kot v primeru, tudi to omogoča gnezdenje ene funkcije kot parametra druge in tako naprej.

Funkcijski programski jeziki omogočajo tudi funkcijam, da funkcije prevzamejo kot prenesene spremenljivke. Upoštevajte, da gre za samo funkcijo, ki se prenese, in ne le rezultate funkcije.

Običajne uporabe

Funkcijsko programiranje se odlikuje pri izvajanju kompleksnega matematičnega modeliranja; zaradi tega je ena od glavnih uporab funkcionalnih jezikov že tradicionalno akademska.

Številni funkcionalni jeziki se odlikujejo tudi pri izvajanju vzporedne obdelave. To je posledica njihove sposobnosti, da izkoristijo čiste funkcije, ki vedno vračajo isto vrednost, ne glede na vrstni red, ki ga izvajajo.

Drugi jeziki morajo skrbeti za pogoje dirke – kjer se ena funkcija izvaja, preden spremenljivka, ki jo uporablja, nastavi na pričakovano vrednost.

Funkcionalna metodologija

Številni programski jeziki, ki niso funkcionalni, se lahko uporabljajo z metodologijo funkcionalnega programiranja.

Ta razvojni pristop lahko daje večino prednosti imperativnega in funkcionalnega programiranja. Nekatere prednosti, ki jih običajno izgubljate, so vgrajene sposobnosti za ohranjanje čistosti, pri čemer je razvijalci odgovoren za to odgovornost.

Nekateri jeziki so dejansko zasnovani s hibridom metodologij in funkcionalnim programiranjem, ki odpravlja nekatere ali vse te pomanjkljivosti.

Zgodovina

Lambda Calculus je verjetno prvi računalniški jezik in je funkcionalen jezik. Prvo jo je razvila cerkev Alonzo.

Zanimivo je, da je bil ta jezik prvič ustvarjen v tridesetih letih prejšnjega stoletja – še preden so obstajali programibilni računalniki. Leta 1958 je John McCarthy, profesor na Massachusetts tehnološkem inštitutu (MIT), ustvaril LISP, ki je bil po vzoru lambda preračunavanja in je eden najpomembnejših funkcionalnih jezikov.

Še danes se uporablja veliko različic LISP – nekatere bolj funkcionalne od drugih.

Jeziki, ki podpirajo funkcionalno programiranje

  • D je bil zasnovan po C ++, da bi dosegel vse prednosti, hkrati pa odpravil zaznane slabosti, da bi bil združljiv s C nazaj.

  • Eliksir je bil pridobljen in sedi na vrhu Erlang-a, pri čemer je uporabil njegovo sposobnost ustvarjanja h

    hudo
    sočasne aplikacije, hkrati pa jezik olajša pisanje in vzdrževanje.

  • Erlang je zelo razširljiv in sočasno, zato je idealen za telekomunikacijske in druge aplikacije, ki prejemajo ogromne količine podatkov v nepredvidljivem zaporedju.

  • F # je odprtokodni več-paradigmni jezik, ki se pogosto uporablja znotraj

    .MREŽA
    ogrodje. Običajno se uporablja za hiter razvoj analitične programske opreme.

  • Haskell je čisti funkcijski jezik, ki uporablja Lambda Calculus.

  • ML se uporablja pri matematičnih, znanstvenih, finančnih, analitičnih in drugih vrstah aplikacij. Ena izmed njegovih prednosti je izdelava programske opreme za manipuliranje z drugimi programi.

  • OCaml ali Objective Caml je brezplačen, odprt jezik, ki temelji na Camlu. Nagibajo k ustvarjanju zelo lahkih programov, ki jim pomagajo, da se nalagajo in izvajajo hitreje kot tisti v drugih jezikih.

  • Scala je bila zasnovana tako, da jo je mogoče enostavno integrirati v Java in druge predmetne jezike. Scala izkorišča funkcionalno programiranje, ki omogoča uporabo v distribuiranih in sočasnih aplikacijah.

  • Shema je temeljila na sintaksi LISP in strukturi ALGOL. Zaradi svoje enostavnosti je shema uporabljena kot uvod v oblikovanje programov na številnih tečajih računalništva, da bi prikazali nekaj temeljev računalniškega programiranja.

  • Swift je bil zasnovan z namenom, da je napak, hiter za razvoj in izrazen.

Viri

Viri funkcionalnega programiranja so običajno usmerjeni v določen jezik, kot je Scala. Toda tudi ko so, zagotavljajo dragocene informacije. Zato ne bodite sramežljivi samo zato, ker članek ali knjiga uporablja jezik, ki ga ne uporabljate.

Vadnice

  • Praktični uvod v funkcionalno programiranje: razprava Mary Rose Cook o uporabi funkcionalnih tehnik programiranja z nujnimi jeziki.

  • Osnove funkcionalnega programiranja: dobra teoretična razprava o funkcionalnem programiranju.

  • Ne bojite se funkcionalnega programiranja: ali je funkcionalno programiranje “brki hipster programskih paradigem”? Poiščite tukaj.

  • Uvod v funkcionalno programiranje v Swiftu: podroben uvod v funkcionalno programiranje s programom Swift.

  • Zakaj so vse vaje za funkcionalno programiranje tako Mathy? – razprava o Stack Exchange, ki jo je vredno prebrati.

Knjige

  • Uvod v funkcionalno programiranje skozi Lambda Calculus (2011) Grega Michaelsona: uvod, ki se začne na samem začetku.

  • Funkcionalno razmišljanje: Paradigma Over Syntax (2014) avtor Neal Ford: napredna knjiga o temeljih funkcionalnega programiranja.

  • Čarobni svet funkcionalnega programiranja: I. del: Miselna funkcionalnost (2014) K Anand Kumar: kratek ebook o osnovah funkcionalnega programiranja.

  • Postati funkcionalen (2014) Joshua Backfield: uvod v funkcionalno programiranje za ljudi, ki so seznanjeni z imperativnimi in objektno usmerjenimi programi.

Povzetek

Čeprav je funkcionalno programiranje za nekatere aplikacije zelo dobro, mnogi programerji najdejo enostavnost nujnih jezikov, veliko lažje pa si ovijajo glave.

Toda za matematično in bolj formalno kodiranje je funkcionalno programiranje dobra izbira. In razumevanje načel funkcionalnega programiranja je lahko v veliko korist vsem programerjem.

Nadaljnje branje in viri

Na voljo imamo več vodnikov, vadnic in infografik, povezanih s kodiranjem in razvojem:

  • F # Programiranje: izvedejte več o funkcionalnem programiranju v .NET okviru.

  • Erlang Programiranje Uvod in viri: zgodnji funkcijski jezik, ki se uporablja za ustvarjanje vzporedne kode.

  • Hitri uvod in viri: to je eden najnovejših jezikov, podobnih C-ju. Prihodnost programiranja? Poiščite tukaj!

Katere kode bi se morali naučiti?

Zmeden, v kateri programski jezik se morate naučiti kodirati? Oglejte si našo infografiko. Kakšno kodo bi se morali naučiti?

Ne samo, da razpravlja o različnih vidikih jezikov, temveč odgovarja na pomembna vprašanja, kot so: “Koliko denarja bom zaslužil za programiranje Java?”

Katere kode bi se morali naučiti?
Katere kode bi se morali naučiti?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me