Funktionale Programmiersprachen benutzen Rekursion sehr oft als grundlegendes Konzept. Da es in funktionalen Programmiersprachen keine Variablen gibt, die einen Zustand speichern können, ist man hier sehr oft auf eine rekursive Variante angewiesen. Ansonsten müssen, wie im Lisp-Beispiel: Iterative Fakultätsberechnung, alle benötigten Variablen ständig als Parameter übergeben werden. Die Ineffizienz von rekursiven Varianten spielt in funktionalen Programmiersprachen oft keine Rolle, weil hier die Flexibilität mehr gefragt ist.

Lisp, ML, Miranda oder Haskell sind Beispiele für funktionale Programmiersprachen.