Programazio funtzional

Informatikan, programazio funtzionala programazio paradigma posibleetako bat da, hots, konputagailu-programak idazteko aukera nagusietako bat. Programazio funtzionala lambda kalkuluan oinarritzen da, 1930eko hamarkadan garatutako sistema formal bat dena. Ez dira berdinak matematikako funtzioa eta programazio inperatiboan erabiltzen den funtzio kontzeptua. Horien arteko aldea da funtzio inperatiboek albo-ondorioak dituztela, lortu nahi den emaitzaz gain beste objektu batzuen balioa aldatu dezaketela. Horrela erreferentziazko osotasun eza nabarmena dute, adierazpen berak balio desberdinak eman ditzakeelako erabiltzen den une desberdinetan. programaren exekuzio-egoeraren arabera gertatutako da hori.

Lengoaia funtzional batean idatzitako programetan bi atal bereizten dira: hasieran zenbait funtzioren definizioa, eta gero zenbait funtzio-aplikazio. Funtzio-aplikazioak argumentu konkretuekin funtzio bati egindako deiak dira, argumentuen balioak balio konstanteak edo beste funtzioen aplikazioaz lortutako emaitzak izan daitezkeelarik. Era honetako programazioaz ari garenean, egikaritzapena datuek gidatzen dutela esan ohi da, eta ez ekintzek, lengoaia agintzaileetan gertatzen den bezala. Erreferentzien gardentasuna lortzen da funtzioen aplikazioetan albo-ondoriorik ez baita onartzen. Prozesu errepikakorrak errekurtsibitatearen bidez adierazi ohi dira. Lengoaia hauek diseinatzeko ez da hartzen abiapuntutzat Von Neuman-en arkitektura, ezta beste arkitektura-motarik ere. Helburua problemak ebazteko tresna lagungarria diseinatzea da baina konputagailu-eredurik kontutan hartu gabe. Hurbilpen funtzionala oso egokia da xede hori lortzeko. Lengoaia funtzionalen artean historikoki Hope, Miranda, ML, LISP eta FP egon dira.

Programazio-lengoaia funtzional puruak direnak unibertsitate guneetan erabili izan dira batez ere, ez merkataritza sektorean. Hala ere, badira erabilera komertzial nabarmena duten batzuk, besteak beste, Scheme, Haskell, Dafny, Erlang, ML, Scala, baita domeinuko lengoaia espezifikoak, hala nola R (estatistika), Mathematica, J eta K finantza analisian eta XSLT dokumentu-eraldaketan. SQL eta Lex / Yacc bezalako lengoaia deklaratiboek programazio funtzionalaren alderdiak erabiltzen dituzte, kalkulu-garaian balio-aldaketak jasan ditzaketen aldagaiak saihestuz. 

Kalkulu orriak programazio-lengoaia funtzional gisa ere ikus daitezke.

Erreferentziak

Kanpo estekak 

 Unib. de Girona - Sarrera prog. funtzionala Lambda Kalkuluaren azalpenarekin
 Unib. de Girona - Teoria de la prog. funtzionala
 Urteko Programazio funtzionala Lehiaketa  ICFP Lehiaketa: funtzionala Programazioa buruzko Nazioarteko Biltzarra Video
 Programazio funtzionala gainerako hilkorrentzat 
 David Mertz, Programazio Funtzionala Python 1. zatia, 2. zatia, 3. zatia 
 Javascript funtzionala 
 Simon Peyton-Jones - Programazio lengoaia funtzionalen ezarpena 

 Bideo-aurkezpenak

 Malcom Wallace - ICFP 2009 eta programazio funtzionalari buruzko azken aurkezpenen beste bideo batzuk 
 Haskell Exchange 2012 
 Malcolm Wallace - ICFP 2012 eta beste batzuk 

Programazio paradigmak