Funkcionálne programovanie

Funkcionálne programovanie je založené na zápise programu v tvare výrazu. Najdôležitejšími zložkami týchto výrazov sú funkcie a ich aplikácie na argumenty. Výpočet funkcionálneho programu spočíva v postupnom zjednodušovoní výrazov až do doby keď sa už výraz zjednodušiť nedá.

Funkcionálne programovanie patrí medzi deklaratívne programovacie princípy. To znamená že 
nepopisuje ako sa bude problém riešiť, ale čo sa daným problémom bude riešiť. Medzi jeho hlavné výhody patrí odstránenie bočných efektov počas výpočtu, čo umožňuje programovú verifikáciu a kontrolu správnosti programov.

Ako základ väčšiny funkcionálnych jazykov slúži λ-kalkul. Ide o matematický formalizmus pre popis vyčíslitelných funkcí, ktorý vytvoril Alonzo Church v 30. rokoch 20. storočia. Je považovaný za „prajazyk“ funkcionálnych jazykov.

Funkcionálne programovacie jazyky 

Najstarším príkladom funkcionálneho jazyku je Lisp, aj keď ani pôvodný LISP a ani nové varianty ako Common Lisp nie sú čisté funkcionálne jazyky. Medzi ďalšie varianty Lispu patria Logo, Scheme, Dylan. Moderné príklad funkcionálnych jazykov sú Haskell a rodina jazykov ML zahŕňajúca ML, Standard ML, OCaml a F#. Ďalšie funkcionálne jazyky sú Erlang, Clean, Miranda, matematické jazyky ako Maple, Mathematica a mnoho ďalších.

Aj niektoré imperatívne programovacie jazyky, ako napríklad Python, Ruby, Tcl alebo Perl, sa dajú použiť na funkcionálne programovanie, pretože obsahujú funkcie vyššieho rádu, abstrakcie a podobne.

Pozrite aj kategóriu so zoznamom funkcionálnych jazykov.