La programmazione funzionale è un paradigma che tenta di risolvere i problemi computazionali mediante la valutazione concatenata di funzioni il cui output è determinato dai loro input piuttosto che dallo stato del programma. In questo stile di programmazione, effetti collaterali e dati mutabili sono deprecati e solitamente strettamente isolati.