One również pochodzą z języka Lisp.

Domknięcia Jednym z najpowszechniej używanych konstrukcji programowania funkcyjnego występujących w dynamicznych językach są domknięcia. Umożliwiają one tworzenie nowych instancji funkcji, które jednak nie tracą dostępu do danych kontekstu, w którym zostały utworzone. Prostym przykładem może być stworzenie funkcji służącej do wyszukiwania słowa w tekście:

function nowy_skaner (słowo) temp_function = function (wejście) szukaj_słowa (wejście, słowo) end function return temp_function end function

Zauważ, że wewnętrzna funkcja jest anonimowa (nie ma nazwy), a miejscem jej przechowywania jest zmienna temp_function. Za każdym razem, gdy wywoływana jest funkcja nowy_skaner(), zwracana przez nią będzie nowa funkcja, która pamięta wartość przekazanego jej podczas definiowania argumentu słowo.

DomknięciaObejrzyj przykład użycia na str. 330 książki Larry'ego Walla pt. Programming Perl są jednym z głównych narzędzi programowania funkcyjnego, a wiele języków obsługuje mechanizmy tego programowania przynajmniej na tym poziomie.