Opi toiminnallinen ohjelmointi: Tämä tyyli koodausta puhaltaa mieltäsi

Disclosure: Tukisi auttaa pitämään sivuston toiminnassa! Ansaitsemme lähetysmaksun joistakin tämän sivun suosittelemista palveluista.


Vaikka suurin osa ohjelmointikieleistä koostuu tuloista, lähdöistä ja ulkoisista muuttujista, jotka voidaan asettaa tai käyttää sen toimintojen sisällä, toiminnallinen ohjelmointi välttää tämän.

Toiminnallisen ohjelmoinnin idea on, että joka kerta kun funktiota kutsutaan samoilla parametreilla, sen pitäisi palauttaa sama arvo.

Mikä tekee toiminnallisesta ohjelmoinnista “toiminnallisen”?

Harkitse toimintoa, joka palauttaa nykyisen lämpötilan. Se ohitetaan vain yhdellä muuttujalla, joka osoittaa, onko lämpötila palautettava Celsius-asteina vai Fahrenheit-asteina.

Sitten toiminto palauttaa nykyisen lämpötilan sisäisen logiikan avulla – lukemalla lämpötila-anturi. Tätä ei pidetä toiminnallisena ohjelmointina, koska joka kerta kun toimintoa käytetään, sillä on mahdollisuus palauttaa eri arvo, vaikka toiminnon tulot ovat samat.

Toimintaparametrit

Toiminnallisilla ohjelmointikieleillä on ensimmäisen luokan toiminnot. Tämä tarkoittaa, että toimintoa voidaan käyttää ikään kuin se olisi arvo, jonka se palauttaa.

Tarkastellaan esimerkiksi toimintoa double (x), joka palauttaa sisäänsyöttöparametrin arvon kaksinkertaisen arvon. Joten kaksinkertainen (2) palauttaisi 4. Koska se on ensimmäisen luokan funktio, koodi kaksois (kaksinkertainen (2)) olisi sama kuin koodi, kaksinkertainen (4).

Kuten esimerkissä, tämä sallii yhden toiminnon sijoittamisen toisen parametriksi ja niin edelleen.

Toiminnalliset ohjelmointikielet sallivat myös toimintojen suorittaa toiminnot ohitettuina muuttujina. Huomaa, että tämä tarkoittaa itse toiminnon siirtämistä, ei pelkästään funktion tuloksia.

Yleinen käyttö

Funktionaalinen ohjelmointi on erinomaista monimutkaisen matemaattisen mallinnuksen toteuttamisessa; tästä syystä yksi funktionaalisten kielten pääkäytöistä on perinteisesti ollut akateeminen.

Monet toiminnalliset kielet ovat erinomaisia ​​myös rinnakkaisprosessoinnissa. Tämä johtuu heidän kyvystään hyödyntää puhtaita toimintoja, jotka palauttavat aina saman arvon riippumatta niiden suorittamasta järjestyksestä.

Muiden kielten on huolehdittava kilpailuolosuhteista – jos yksi toiminto suoritetaan ennen kuin sen käyttämä muuttuja asetetaan odotettuun arvoon.

Toiminnallinen menetelmä

Monia ohjelmointikieliä, jotka eivät ole toiminnallisia, voidaan käyttää toiminnallisen ohjelmointimenetelmän kanssa.

Tämä kehitysmalli voi antaa suurimman osan välttämättömän ohjelmoinnin ja toiminnallisen ohjelmoinnin eduista. Jotkut hyödyt, jotka yleensä menetät, ovat sisäänrakennetut kyvyt ylläpitää puhtautta jättäen kehittäjälle tämän vastuun.

Jotkut kielet on todella suunniteltu yhdistelmällä metodologioita ja toiminnallisia ohjelmointeja, jotka poistavat kaikki tai kaikki nämä haitat.

Historia

Lambda Calculus on kiistatta ensimmäinen tietokonekieli, ja se on toimiva kieli. Sen kehitti ensin Alonzon kirkko.

Mielenkiintoista on, että tämä kieli luotiin ensimmäisen kerran 1930-luvulla – paljon ennen ohjelmoitavien tietokoneiden olemassaoloa. Vuonna 1958 Massachusetts Institute of Technologyn (MIT) professori John McCarthy loi LISP: n, joka mallinnettiin lambda calculuksen mukaan ja on yksi tärkeimmistä funktionaalisista kielistä..

LISP: stä käytetään edelleen monia versioita – jotkut toimivampia kuin toiset.

Kielet, jotka tukevat toiminnallista ohjelmointia

  • D suunniteltiin C ++: n jälkeen saamaan kaikki edut poistaen samalla havaitut heikkoudet, jotka ovat C: n kanssa taaksepäin yhteensopivia.

  • Eliksiiri johdettiin ja istuu Erlangin päälle kykynsä luoda h

    ighly
    samanaikaiset sovellukset samalla kun kielen kirjoittaminen ja ylläpito on helpompaa.

  • Erlang on erittäin skaalautuva ja samanaikainen, joten se on ihanteellinen tietoliikenteelle ja muille sovelluksille, jotka vastaanottavat valtavia määriä dataa arvaamattomassa järjestyksessä.

  • F # on avoimen lähdekoodin multi-paradigman kieli, jota käytetään usein

    .NETTO
    puitteissa. Sitä käytetään yleisesti analyyttisen ohjelmiston nopeaan kehittämiseen.

  • Haskell on puhdas funktionaalinen kieli, joka käyttää Lambda Calculusta.

  • ML: ää käytetään matemaattisissa, tieteellisissä, taloudellisissa, analyyttisissä ja muissa sovellutuksissa. Yksi sen vahvuuksista on ohjelmistojen valmistaminen muiden ohjelmien käsittelemiseksi.

  • OCaml tai Objective Caml, on ilmainen, avoimen lähteen kieli, joka perustui Camliin. Se pyrkii luomaan erittäin kevyitä ohjelmia, jotka auttavat niitä latautumaan ja ajamaan nopeammin kuin muilla kielillä luodut.

  • Scala on suunniteltu integroitavaksi helposti Java: iin ja muihin oliokeskeisiin kieliin. Scala hyödyntää toiminnallista ohjelmointia, jolloin sitä voidaan käyttää hajautettuissa ja samanaikaisissa sovelluksissa.

  • Järjestelmä perustui LISP: n syntaksiin ja ALGOL: n rakenteeseen. Järjestelmän yksinkertaisuuden vuoksi sitä käytetään johdanto-osana ohjelmasuunnittelua monilla tietotekniikan kursseilla osoittamaan joitain tietokoneohjelmoinnin perusteita.

  • Swift on suunniteltu tavoitteeksi olla vikasietoinen, nopeasti kehittyvä ja ilmeikäs.

voimavarat

Toiminnalliset ohjelmointiresurssit keskittyvät yleensä tiettyyn kieleen, kuten Scala. Mutta vaikka ne olisivat, ne tarjoavat arvokasta tietoa. Älä siis ole ujo, koska artikkelissa tai kirjassa käytetään kieltä, jota et käytä.

Oppaat

  • Käytännön johdanto toiminnalliseen ohjelmointiin: Mary Rose Cookin keskustelu toiminnallisten ohjelmointitekniikoiden käytöstä pakollisten kielten kanssa.

  • Funktionaalisen ohjelmoinnin perusteet: hyvä teoreettinen keskustelu toiminnallisesta ohjelmoinnista.

  • Älä pelkää toiminnallisesta ohjelmoinnista: onko funktionaalinen ohjelmointi ”ohjelmointiparadigmien mustakyhinen hipsteri”? Ota selvää täältä.

  • Johdatus Swiftin toiminnalliseen ohjelmointiin: yksityiskohtainen johdanto toiminnalliseen ohjelmointiin Swiftin avulla.

  • Miksi kaikki toiminnalliset ohjelmointiohjeet ovat niin Mathy? – keskustelu Stack Exchangestä, joka on lukemisen arvoinen.

Kirjat

  • Johdanto toiminnalliseen ohjelmointiin Lambda Calculuksen kautta (2011), kirjoittanut Greg Michaelson: johdanto, joka alkaa heti alusta.

  • Toiminnallinen ajattelu: Neal Fordin paradigma yli syntaksin (2014): pitkälle kehitetty kirja toiminnallisen ohjelmoinnin perusteista.

  • Toiminnallisen ohjelmoinnin maaginen maailma: Osa I: Toiminnallinen ajattelu (2014), kirjoittanut K Anand Kumar: lyhyt e-kirja funktionaalisen ohjelmoinnin perusteista.

  • Joshua Backfield: Becoming Functional (2014): esittely toiminnallisesta ohjelmoinnista ihmisille, jotka tuntevat imperatiivisen ja olio-ohjelmoidun ohjelmoinnin.

Yhteenveto

Vaikka toiminnallinen ohjelmointi on erittäin hyvä joissakin sovelluksissa, monet ohjelmoijat pitävät pakollisten kielten helppoutta ja paljon helpompaa kääriä päätään.

Mutta matemaattisessa ja muodollisemmassa koodauksessa toiminnallinen ohjelmointi on hyvä valinta. Ja toiminnallisen ohjelmoinnin periaatteiden ymmärtäminen voi olla hyödyksi kaikille ohjelmoijille.

Lisää lukemista ja resursseja

Meillä on enemmän koodaukseen ja kehittämiseen liittyviä oppaita, oppaita ja infografioita:

  • F # Ohjelmointi: Ota selvää .NET-kehyksen toiminnallisesta ohjelmoinnista.

  • Erlang-ohjelmoinnin esittely ja lähteet: varhainen toiminnallinen kieli, jota käytetään rinnakkaiskoodin luomiseen.

  • Swift Johdanto ja resurssit: tämä on yksi uusimmista C-kaltaisista kielistä. Ohjelmoinnin tulevaisuus? Ota selvää täältä!

Mitä koodia sinun pitäisi oppia?

Hämmentynyt siitä, mitä ohjelmointikieltä sinun tulisi oppia koodaamaan? Tutustu infografiaan, mitä koodia sinun pitäisi oppia?

Se ei keskustele vain kielten eri näkökohdista, vaan vastaa myös tärkeisiin kysymyksiin, kuten “Kuinka paljon rahaa teen Java-ohjelmointi elantonsa varten?”

Mitä koodia sinun tulisi oppia?
Mitä koodia sinun pitäisi oppia?

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