Вкладена функція
Вкладена функція (вкладена процедура чи вкладена підпрограма, англ. nested function) — у комп'ютерному програмуванні функція, яка визначена всередині іншої функції, функції охоплювальної (англ. enclosing function). У зв'язку з правилами дії області визначення процедур та змінних, вкладена функція, таким чином, має доступ до локальних змінних охоплювальної функції і вкладена функція не може бути доступна за межами охоплювальної функції. Рівень вкладених функцій теоретично можливий будь-якої глибини, однак в практичних програмах використовується, як правило, тільки кілька рівнів.
Вкладені функції використовуються в багатьох парадигмах програмування. В багатьох сучасних динамічних і функціональних мовах вкладені функції надзвичайно корисні та вживані. В структурному програмуванні також часто застосовується в «поважних» мовах, таких як Алгол, Симула, Паскаль та Фортран.
В C++ вкладені функції можна реалізувати за допомогою лямбда-виразів.