Nested function (original) (raw)
Une fonction imbriquée ou fonction interne est une fonction dont la définition est encapsulée dans une autre fonction.Elle ne peut être appelée que par la fonction englobante ou par des fonctions imbriquées directement ou non dans la même fonctionenglobante. En d'autres termes, la portée de la fonction imbriquée est limitée par la fonction englobante; elle offre un contrôle très strict de leur visibilité (scope) par le reste du programme.
Property | Value |
---|---|
dbo:abstract | 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 unlimited depth, although only a few levels are normally used in practical programs. Nested functions are used in many approaches to structured programming, including early ones, such as ALGOL, Simula 67 and Pascal, and also in many modern dynamic languages and functional languages. However, they are traditionally not supported in the (originally simple) C-family of languages. (en) Une fonction imbriquée ou fonction interne est une fonction dont la définition est encapsulée dans une autre fonction.Elle ne peut être appelée que par la fonction englobante ou par des fonctions imbriquées directement ou non dans la même fonctionenglobante. En d'autres termes, la portée de la fonction imbriquée est limitée par la fonction englobante; elle offre un contrôle très strict de leur visibilité (scope) par le reste du programme. (fr) Em programação, uma subrotina aninhada (ou função aninhada) é uma subrotina encapsulada noutra. O contexto da subrotina aninhada é limitado à subrotina que a encapsula. Isso significa que ela pode ser chamada somente pela subrotina que a encapsula, ou pelas subrotinas diretamente ou indiretamente aninhadas pela mesma subrotina encapsuladora. O aninhamento é teoricamente ilimitado, ainda que na prática somente alguns níveis são aceitos, o que depende da implementação. Essa técnica é uma forma de encapsulamento, e é útil para dividir tarefas procedimentais em subtarefas que fazem sentido somente localmente. Em linguagens que aceitam a técnica, outros tipos de aninhamento também são geralmente aceitos, como o aninhamento de constantes e tipos de dado. Havendo suporte, as subrotinas aninhadas são uma forma comum de implementar algoritmos com laços de repetição em linguagens funcionais. (pt) Вкладена функція (вкладена процедура чи вкладена підпрограма, англ. nested function) — у комп'ютерному програмуванні функція, яка визначена всередині іншої функції, функції охоплювальної (англ. enclosing function). У зв'язку з правилами дії області визначення процедур та змінних, вкладена функція, таким чином, має доступ до локальних змінних охоплювальної функції і вкладена функція не може бути доступна за межами охоплювальної функції. Рівень вкладених функцій теоретично можливий будь-якої глибини, однак в практичних програмах використовується, як правило, тільки кілька рівнів. Вкладені функції використовуються в багатьох парадигмах програмування. В багатьох сучасних динамічних і функціональних мовах вкладені функції надзвичайно корисні та вживані. В структурному програмуванні також часто застосовується в «поважних» мовах, таких як Алгол, Симула, Паскаль та Фортран. В C++ вкладені функції можна реалізувати за допомогою лямбда-виразів. (uk) |
dbo:wikiPageExternalLink | http://c-faq.com/misc/nestfcns.html http://www.drdobbs.com/nested-functions/184401792 http://www.freepascal.org/docs-html/prog/progse23.html |
dbo:wikiPageID | 1290268 (xsd:integer) |
dbo:wikiPageLength | 19414 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1115251068 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Python_(programming_language) dbr:Quicksort dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:Scheme_(programming_language) dbr:NX_bit dbr:C-family dbr:Non-local_object dbr:Algorithm dbr:Perl dbr:Variable_(programming) dbr:Visual_Basic_.NET dbr:Information_hiding dbr:Inner_class dbr:Common_Lisp dbc:Source_code dbr:Escape_analysis dbr:Nesting_(computing) dbr:Object_(computer_science) dbr:Closure_(computer_science) dbr:Eiffel_(programming_language) dbr:GNU_Compiler_Collection dbr:Modula-2 dbr:Modula-3 dbr:Block_scope dbr:Control_flow dbr:Anonymous_function dbr:Lisp_(programming_language) dbr:Lua_(programming_language) dbr:MATLAB dbr:Call_stack dbr:Simula dbr:Structured_programming dbr:Subroutine dbr:Closure_(computer_programming) dbr:Computer_programming dbr:Funarg_problem dbr:Function_object dbr:Functional_programming dbr:Function_scope dbr:Static_variable dbr:Automatic_variable dbr:C++ dbr:C++11 dbr:C_Sharp_(programming_language) dbc:Subroutines dbr:Lambda_lifting dbr:ALGOL dbr:ALGOL_68 dbr:ActionScript dbr:Ada_(programming_language) dbr:D_(programming_language) dbr:Dart_(programming_language) dbr:Data_type dbr:Dynamic_memory_allocation dbr:ECMAScript dbr:For_loop dbr:Fortran dbr:PHP dbr:Parameter dbr:Pascal_(programming_language) dbr:Global_variable dbr:Dr._Dobb's dbr:Recursion dbr:Haskell_(programming_language) dbr:JavaScript dbr:Java_(programming_language) dbr:Software_Development_Security dbr:Jump_instruction dbr:Tail_recursion dbr:Wrapper_function dbr:Constant_(programming) dbr:Kotlin_(programming_language) dbr:Oberon_(programming_language) dbr:Seed7 dbr:Wolfram_Language dbr:Programming_idiom dbr:Simula_67 dbr:Non-local_variable dbr:Scope_(programming) dbr:Modula_2 dbr:Dynamic_language dbr:First_class_object dbr:Functional_language dbr:GNU_C dbr:Lexically_scoped dbr:Anonymous_class dbr:Stack_allocation |
dbp:wikiPageUsesTemplate | dbt:Cite_web dbt:Main dbt:Notelist dbt:Refbegin dbt:Refend dbt:Reflist dbt:See_also dbt:Sfn dbt:Short_description |
dcterms:subject | dbc:Source_code dbc:Subroutines |
gold:hypernym | dbr:Function |
rdf:type | owl:Thing yago:WikicatSubroutines yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 dbo:Disease yago:Routine106582403 yago:Software106566077 |
rdfs:comment | Une fonction imbriquée ou fonction interne est une fonction dont la définition est encapsulée dans une autre fonction.Elle ne peut être appelée que par la fonction englobante ou par des fonctions imbriquées directement ou non dans la même fonctionenglobante. En d'autres termes, la portée de la fonction imbriquée est limitée par la fonction englobante; elle offre un contrôle très strict de leur visibilité (scope) par le reste du programme. (fr) 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 unlimited depth, although only a few levels are normally used in practical programs. (en) Em programação, uma subrotina aninhada (ou função aninhada) é uma subrotina encapsulada noutra. O contexto da subrotina aninhada é limitado à subrotina que a encapsula. Isso significa que ela pode ser chamada somente pela subrotina que a encapsula, ou pelas subrotinas diretamente ou indiretamente aninhadas pela mesma subrotina encapsuladora. O aninhamento é teoricamente ilimitado, ainda que na prática somente alguns níveis são aceitos, o que depende da implementação. (pt) Вкладена функція (вкладена процедура чи вкладена підпрограма, англ. nested function) — у комп'ютерному програмуванні функція, яка визначена всередині іншої функції, функції охоплювальної (англ. enclosing function). У зв'язку з правилами дії області визначення процедур та змінних, вкладена функція, таким чином, має доступ до локальних змінних охоплювальної функції і вкладена функція не може бути доступна за межами охоплювальної функції. Рівень вкладених функцій теоретично можливий будь-якої глибини, однак в практичних програмах використовується, як правило, тільки кілька рівнів. (uk) |
rdfs:label | Fonction imbriquée (fr) Nested function (en) Sub-rotina aninhada (pt) Вкладена функція (uk) |
rdfs:seeAlso | dbr:Man dbr:Boy_test |
owl:sameAs | freebase:Nested function yago-res:Nested function wikidata:Nested function dbpedia-fr:Nested function dbpedia-pt:Nested function dbpedia-uk:Nested function https://global.dbpedia.org/id/2rFRe |
prov:wasDerivedFrom | wikipedia-en:Nested_function?oldid=1115251068&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Nested_function |
is dbo:wikiPageRedirects of | dbr:Nested_functions dbr:Local_function dbr:Local_function_definition dbr:Local_procedure dbr:Nested_function_definition dbr:Nested_procedure |
is dbo:wikiPageWikiLink of | dbr:Inline_function dbr:Intel_8086 dbr:Comparison_of_Pascal_and_C dbr:Compiler dbr:Nesting_(computing) dbr:O-Matrix dbr:Function_(computer_programming) dbr:GNU_Compiler_Collection dbr:Anonymous_function dbr:Call_stack dbr:Comparison_of_ALGOL_68_and_C++ dbr:Funarg_problem dbr:Function_prologue_and_epilogue dbr:Functional_programming dbr:Mutual_recursion dbr:Automatic_variable dbr:Trampoline_(computing) dbr:Haskell_features dbr:Local_variable dbr:Royal_Radar_Establishment_Automatic_Computer dbr:SYMPL dbr:ALGOL dbr:ALGOL_60 dbr:D_(programming_language) dbr:Gremlin_(query_language) dbr:Block_(programming) dbr:Blocks_(C_language_extension) dbr:Stack_trace dbr:Wrapper_function dbr:Icon_(programming_language) dbr:Recursion_(computer_science) dbr:Shed_Skin dbr:Scope_(computer_science) dbr:Euclid_(programming_language) dbr:Procedural_parameter dbr:First-class_function dbr:Man_or_boy_test dbr:Non-local_variable dbr:Nested_functions dbr:Local_function dbr:Local_function_definition dbr:Local_procedure dbr:Nested_function_definition dbr:Nested_procedure |
is rdfs:seeAlso of | dbr:Non-local_variable |
is foaf:primaryTopic of | wikipedia-en:Nested_function |