Sužinokite apie funkcinį programavimą: šis kodavimo stilius užtemdys jūsų mintis

Atskleidimas: Jūsų palaikymas padeda išlaikyti svetainę! Mes uždirbame siuntimo mokestį už kai kurias paslaugas, kurias rekomenduojame šiame puslapyje.


Nors daugumą programavimo kalbų sudaro įėjimai, išėjimai ir išoriniai kintamieji, kuriuos galima nustatyti arba naudoti iš jo funkcijų, funkcinio programavimo to išvengiama..

Funkcinio programavimo idėja yra ta, kad kiekvieną kartą, kai funkcija iškviečiama tais pačiais parametrais, ji turėtų grąžinti tą pačią vertę.

Kas daro funkcinį programavimą „funkciniu“?

Apsvarstykite funkciją, kuri grąžina esamą temperatūrą. Praleidžiamas tik vienas kintamasis, nurodantis, ar temperatūra turėtų būti grąžinta laipsniais Celsijaus, ar pagal Fahrenheitą.

Tada funkcija naudoja vidinę logiką, kad grąžintų esamą temperatūrą – galbūt nuskaitant temperatūros jutiklį. Tai nelaikoma funkciniu programavimu, nes kiekvieną kartą naudojant funkciją, ji gali grąžinti skirtingą vertę, net jei funkcijos įėjimai yra vienodi..

Funkcijos parametrai

Funkcinės programavimo kalbos turi pirmos klasės funkcijas. Tai reiškia, kad funkcija gali būti naudojama tarsi vertė, kurią ji grąžina.

Pavyzdžiui, apsvarstykite funkciją dviguba (x), kuri grąžina dvigubai didesnę jo įvesties parametro vertę. Taigi dviguba (2) grąžintų 4. Atsižvelgiant į tai, kad tai yra pirmosios klasės funkcija, kodas dvigubas (dvigubas (2)) būtų toks pat kaip kodas, dvigubas (4)..

Kaip ir pavyzdyje, tai leidžia įterpti vieną funkciją kaip kitos parametrą ir pan.

Funkcinės programavimo kalbos taip pat leidžia funkcijoms atlikti funkcijas kaip praėjusius kintamuosius. Atminkite, kad tai susiję su pačios funkcijos perdavimu, o ne tik su funkcijos rezultatais.

Įprasti naudojimo būdai

Funkcinis programavimas puikiai tinka įgyvendinant sudėtingą matematinį modeliavimą; dėl šios priežasties vienas iš pagrindinių funkcinių kalbų naudojimo būdų tradiciškai buvo akademinis.

Įgyvendinant lygiagretųjį apdorojimą, daugelis funkcinių kalbų taip pat išsiskiria. Taip yra dėl jų sugebėjimo pasinaudoti grynosiomis funkcijomis, visada grąžinančiomis tą pačią vertę, nepriklausomai nuo jų vykdomos tvarkos.

Kitos kalbos turi jaudintis dėl lenktynių sąlygų – kai viena funkcija vykdoma prieš kintamąjį, kurį ji naudoja, nustatoma iki numatomos vertės.

Funkcinė metodika

Daugybė nefunkcinių programavimo kalbų gali būti naudojamos kartu su funkcinio programavimo metodika.

Šis raidos požiūris gali suteikti didžiąją dalį privalomo programavimo ir funkcinio programavimo privalumų. Kai kurie pranašumai, kuriuos paprastai prarandate, yra integruoti sugebėjimai išlaikyti grynumą, paliekant už tai atsakomybę kūrėjui.

Kai kurios kalbos iš tikrųjų yra sukurtos naudojant hibridinę metodiką kartu su funkciniu programavimu, pašalinančiomis kai kuriuos ar visus šiuos trūkumus.

Istorija

Lambda Calculus, be abejo, yra pirmoji kompiuterio kalba, ir tai yra funkcinė kalba. Pirmiausia ją sukūrė Alonzo bažnyčia.

Įdomu tai, kad ši kalba pirmą kartą buvo sukurta 1930-aisiais – gerokai anksčiau, nei egzistavo programuojami kompiuteriai. 1958 m. Masačusetso technologijos instituto (MIT) profesorius Johnas McCarthy sukūrė LISP, kuris buvo modeliuotas pagal lambda skaičiavimą ir yra viena iš svarbiausių funkcinių kalbų..

Šiandien vis dar naudojama daugybė LISP versijų – kai kurios funkcionalesnės nei kitos.

Kalbos, palaikančios funkcinį programavimą

  • D buvo sukurtas po C ++, kad gautų visą naudą, pašalindamas suvoktus atgalinio suderinamumo su C trūkumus.

  • Eliksyras buvo gautas ir sėdi ant Erlango viršaus, naudodamas savo sugebėjimą sukurti h

    nedrąsiai
    vienalaikės programos, tuo pat metu palengvinant kalbos rašymą ir priežiūrą.

  • „Erlang“ yra labai keičiamas ir suderinamas, todėl jis yra idealus telekomunikacijų ir kitoms programoms, kurios gauna didžiulį duomenų kiekį nenuspėjama tvarka.

  • F # yra atvirojo kodo daugiaparadigminė kalba, dažnai naudojama

    .NET
    sistema. Paprastai jis naudojamas greitam analitinės programinės įrangos tobulinimui.

  • „Haskell“ yra gryna funkcinė kalba, vartojanti „Lambda Calculus“.

  • ML yra naudojama matematiniuose, moksliniuose, finansiniuose, analitiniuose ir kituose tipuose. Vienas iš jos privalumų yra programinės įrangos, skirtos manipuliuoti kitomis programomis, kūrimas.

  • „OCaml“ arba „Objective Caml“ yra laisva, atvira kilmės kalba, paremta Caml. Jis linkęs kurti labai lengvas programas, kurios padeda įkelti ir paleisti greičiau nei sukurtos kitomis kalbomis.

  • „Scala“ buvo sukurta lengvai integruoti į „Java“ ir kitas į objektus orientuotas kalbas. „Scala“ naudojasi funkcinio programavimo pranašumais, leidžiančiais jį naudoti paskirstytose ir tuo pačiu metu vykdomose programose.

  • Schema buvo pagrįsta LISP sintakse ir ALGOL struktūra. Dėl savo paprastumo, schema naudojama kaip įvadas į programos sudarymą daugelyje informatikos kursų, siekiant parodyti kai kuriuos kompiuterio programavimo pagrindus..

  • „Swift“ buvo sukurtas siekiant būti tolerantiškam gedimui, greitai tobulėti ir išraiškingas.

Šaltiniai

Funkciniai programavimo šaltiniai paprastai yra sutelkti į tam tikrą kalbą, pavyzdžiui, „Scala“. Bet net būdami jie teikia vertingos informacijos. Taigi nebijokite tik todėl, kad straipsnis ar knyga vartojama ne ta kalba, kuria naudojatės.

Pamokos

  • Praktinis funkcinio programavimo įvadas: Mary Rose Cook diskusija apie funkcinio programavimo metodų naudojimą kartu su būtinosiomis kalbomis.

  • Funkcinio programavimo pagrindai: gera teorinė funkcinio programavimo diskusija.

  • Nebijokite funkcinio programavimo: ar funkcinis programavimas yra „programavimo paradigmų hipsteris“? Sužinok čia.

  • „Swift“ funkcinio programavimo įvadas: išsamus funkcinio programavimo „Swift“ įvadas.

  • Kodėl visi funkcinio programavimo vadovėliai yra tokie Mathy? – diskusiją apie „Stack Exchange“, kurią verta perskaityti.

Knygos

  • Grego Michaelsono įvadas į funkcinį programavimą per „Lambda Calculus“ (2011): įvadas, prasidedantis pačioje pradžioje.

  • Funkcinis mąstymas: paradigma per sintaksę (2014 m.), Pateikė Neal Ford: pažangi knyga apie funkcinio programavimo pagrindus.

  • Magiškasis funkcinio programavimo pasaulis: I dalis: Funkcinis mąstymas (2014 m.), Autorius K Anand Kumar: trumpa knyga apie funkcinio programavimo pagrindus.

  • Joshua Backfieldo „Tapimas funkciniu“ (2014 m.): Įvadas į funkcinį programavimą žmonėms, susipažinusiems su imperatyviu ir į objektą orientuotu programavimu.

Santrauka

Nors funkcinis programavimas labai tinka kai kurioms programoms, daugelis programuotojų supranta, kad kalbų mokėjimas yra būtinas, daug lengviau suvynioti galvą.

Bet matematiniam ir formalesniam kodavimui funkcinis programavimas yra geras pasirinkimas. Funkcinio programavimo principų supratimas gali būti labai naudingas visiems programuotojams.

Tolesni skaitymai ir šaltiniai

Turime daugiau vadovų, vadovėlių ir infografijų, susijusių su kodavimu ir plėtra:

  • F # programavimas: sužinokite apie funkcinį programavimą .NET sistemoje.

  • „Erlang“ programavimo įvadas ir šaltiniai: ankstyvoji funkcinė kalba, naudojama kuriant lygiagrečius kodus.

  • „Swift“ įvadas ir šaltiniai: tai viena iš naujausių C kalbą primenančių kalbų. Programavimo ateitis? Sužinok čia!

Kokį kodą turėtumėte išmokti?

Nesuprantate, kokią programavimo kalbą turėtumėte išmokti koduoti? Peržiūrėkite mūsų infografiką, kokį kodą turėtumėte išmokti?

Jame ne tik aptariami skirtingi kalbų aspektai, bet ir atsakoma į svarbius klausimus, tokius kaip: „Kiek uždirbsiu„ Java “programavimui pragyvenimui?“

Kokį kodą turėtumėte išmokti?
Kokį kodą turėtumėte išmokti?

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