Funkcinis programavimas yra programavimo paradigma, pagrįsta abstrakcijų kūrimu naudojant funkcijas, vengiant šalutinių poveikių ir būklės pokyčių. Grynas funkcinis programavimas yra sriegis saugus.

Funkcinis programavimas yra programavimo paradigma, kuri daugiausia susijusi su matematinėmis funkcijomis. Funkcinėmis kalbomis funkcijos yra pirmos klasės vertės.

Funkcijos priima argumentus ir grąžina rezultatus, tačiau paprastai nesukelia valstybės. Tai prieštarauja , kuris iš esmės sukasi aplink teiginius, kurie keičia valstybę. Keičiamos būsenos išvengimo privalumas yra tas, kad jūs galite saugiai konstruoti funkcijas ir galite naudoti algebrinius įstatymus ir „pakeisti bendraamžių bendraamžius“, kad supaprastintumėte programas arba padidintumėte jų našumą.

Viena to pasekmė yra ta, kad daug bendrų programavimo modelių galima išskirti kaip aukštesnio lygio funkcijas, kurios naudoja vartotojo teikiamą funkciją, įgyvendinančią faktinę funkciją ir tam tikru būdu ją pritaikydamos duomenims. Tai gali padaryti kodą glaustesnį ir suprantamesnį.

Funkcinis programavimas išaugo iš matematinės sistemos, vadinamos lambda calculus , sukurtas 1930-aisiais. buvo pirmoji programavimo kalba, pagrįsta lambda calculus.

Šiandien vis labiau populiarėja funkcinis programavimas. Pagrindinė šios priežasties priežastis yra funkcinių programų savybių įrodymas, ir šių dienų saugumas yra labai svarbus. Yra daug funkcijų programavimo atvejų, pvz., Skaičiavimo ar apdorojimo lygiagretumo. Naudokite funkcinio programavimo atvejus .

Programavimo kalbos

Šios kalbos yra išvardytos populiarumo tvarka pagal functional-programming žymą.

Kalbos, kurios dažniausiai veikia, nors kai kurios iš jų taip pat palaiko besikeičiančias būsenas arba kitas programavimo paradigmas:

Kalbos, turinčios tam tikrus funkcinius aspektus (pvz., Pirmos klasės palaikymo funkcijos), tačiau nėra laikomos funkcinėmis kalbomis: