Skip to main content

Ano ang functional programming?

Ang functional programming ay isang programming paradigma kung saan ang batayan ng pagkalkula ay ang pagsusuri ng mga expression.Ang ilang mga katangian ay ang paggamit ng mga function na mas mataas na order, referral na transparency at tamad na pagsusuri.Ang mga bentahe ng istilo ng programming ay kasama na ang mga programa ay madaling basahin, ay maaasahan at maaaring masira sa mga sangkap.Ang mga kawalan ay ang mga pagkalkula ay maaaring mabagal at ang estilo at syntax ay ganap na naiiba sa iba pang mga karaniwang estilo ng programming.Ang istilo ng functional programming ay mas madalas na yakapin ng akademya kaysa sa mga propesyonal sa agham ng computer.

Tulad ng iminumungkahi ng pangalan, ang mga pag -andar ay isang pangunahing bahagi ng paradigma ng programming na ito.Ang mga pag-andar ay maaaring nested sa loob ng iba pang mga pag-andar, na tinatawag na mas mataas na pag-andar ng order, at ang bawat pag-andar ng mas mataas na order ay maaaring masira sa mga pag-andar ng block block na madaling maunawaan at i-debug.Ang mga halimbawa ng ilang mas mataas na pag -andar ng order ay mapa at pugad.Ang mapa ng pag -andar ay tumatagal ng isang function f at ang listahan ng mga variable, halimbawa (x, y, z) at nagbibigay ng resulta sa isang listahan: mapa [f, (x, y, z)] ' (f (x), f(y), f (z)).Ang pugad ay tumatagal ng function f, ang variable x, at ang bilang ng mga iterations: pugad [f, x, 3] ' f (f (f (x))).

Ang purong functional programming ay tumatagal ng isang input at nagbabalik ng isang output nang hindi nagbabago ng estado ng variable.Sa madaling salita, ang isang function na may parehong input ay palaging magbibigay ng parehong mga resulta anuman ang nangyari dati sa programa.Ito ay tinatawag na referral na transparency.Dahil ang mga pag -andar sa matematika ay sanggunian na transparent, ang functional programming ay intuitive sa maraming mga matematiko, inhinyero at siyentipiko.

Ang referral na transparency ng mga pag -andar ay nangangahulugan na ang pagkakasunud -sunod ng pagsusuri sa pag -andar ay hindi mahalaga.Samakatuwid ang mga pag -andar ay hindi dapat masuri hanggang sa kinakailangan ang kanilang mga resulta, na tinatawag na tamad na pagsusuri.Ito ay nasa kumpletong kaibahan sa mga kinakailangang programming, kung saan nagsisimula ang isang programa sa unang utos at tumatakbo sa listahan hanggang sa huling utos.Ang mga tamad na pagsusuri ay lumaktaw sa mga bahagi ng programa na hindi sumusunod sa lohikal o mababaw, na awtomatikong na -optimize ang programa at maaaring mabawasan ang oras ng pag -compute.Ang mga pag -andar na may malinaw na mga input at output ay madaling basahin at maunawaan.Kapag ang isang pag -andar ay lubusang naka -debug, maaari itong maaasahan na magamit sa iba pang mga aplikasyon.Ang mga multicore machine ay maaaring makalkula ang mga pag -andar na nasuri nang nakapag -iisa kahanay, drastically pagpapabuti ng pagganap ng mga programa.

Sa kasamaang palad, hindi lahat ng mga programa ay nagpapahiram sa kanilang sarili sa kahanay na computing, at ang pag -compute ng mga functional na programa ay maaaring maging mabagal.Ang mga function na programa ay lubos na umaasa sa pag -recursion, na kung saan ay madalas na hindi gaanong mahusay na ang paggamit ng tradisyonal na mga loop o pamamaraan ng pag -iiba.Sa katunayan, ang functional programming ay maaaring maging lubos na clumsy at mahirap malaman dahil hindi ito kahawig ng iba pang mas karaniwang mga paradigma tulad ng object oriented programming..Ang ilang mga dalisay na wika ay sina Haskell at Erlang.Ang Mathematica ay dalubhasa sa simbolikong matematika, ang R ay dalubhasa sa mga istatistika at si J ay dalubhasa sa pagsusuri sa pananalapi.Ang mga wikang multiparadigm tulad ng scala at f# ay sumusuporta sa parehong functional programming at iba pang mga estilo ng programming.