In
computer programming, a
nested function (or
nested procedure or
subroutine) is a
function which is defined within another function, the
enclosing function. Due to simple recursive
scope rules, a nested function is itself invisible outside of its immediately enclosing function, but can see (access) all local objects (data, functions, types, etc.) of its immediately enclosing function as well as of any function(s) which, in turn, encloses that function. The nesting is theoretically possible to any ideas of depth, although only a few levels are normally used in practical programs.