Вложенная функция
Материал из Википедии — свободной encyclopedia
В программировании, вложенная функция (или вложенная процедура или подпрограмма) — функция, которая определена внутри другой внешней функции. Благодаря простым рекурсивным правилам области видимости, вложенная функция не видима снаружи своей непосредственной внешней функции, но может видеть (иметь доступ) ко всем локальным объектам (данным, функциям, типам, и т.д.) своей прямой внешней функции, а также ко всем функциям, которые в свою очередь, находятся внутри этой внешней функции. Вкладывание функций (nesting) теоретически возможно на неограниченную глубину, хотя только несколько уровней обычно используется в повседневных программах.
Вложенные функции используются во множестве подходов к структурному программированию, включая ранние языки, такие как ALGOL, Simula и Pascal, а также во множестве современных динамических и функциональных языков программирования. Несмотря на это, они обычно не поддерживаются в (изначально простых) языках семейства С.