Anonymous recursion (original) (raw)
無名再帰(むめいさいき、英: anonymous recursion, nameless recursion)とは、無名関数において再帰を行うことである。無名関数は名前を持たないため自己を呼び出すために特別の工夫が必要である。無名再帰は、関数定義では関数自身には名前を付けないが、関数の引数には名前を付けて良い、という制約条件で行う再帰。ラムダ計算において関数はそのような制約条件がある。
Property | Value |
---|---|
dbo:abstract | In computer science, anonymous recursion is recursion which does not explicitly call a function by name. This can be done either explicitly, by using a higher-order function – passing in a function as an argument and calling it – or implicitly, via reflection features which allow one to access certain functions depending on the current context, especially "the current function" or sometimes "the calling function of the current function". In programming practice, anonymous recursion is notably used in JavaScript, which provides reflection facilities to support it. In general programming practice, however, this is considered poor style, and recursion with named functions is suggested instead. Anonymous recursion via explicitly passing functions as arguments is possible in any language that supports functions as arguments, though this is rarely used in practice, as it is longer and less clear than explicitly recursing by name. In theoretical computer science, anonymous recursion is important, as it shows that one can implement recursion without requiring named functions. This is particularly important for the lambda calculus, which has anonymous unary functions, but is able to compute any recursive function. This anonymous recursion can be produced generically via fixed-point combinators. (en) 無名再帰(むめいさいき、英: anonymous recursion, nameless recursion)とは、無名関数において再帰を行うことである。無名関数は名前を持たないため自己を呼び出すために特別の工夫が必要である。無名再帰は、関数定義では関数自身には名前を付けないが、関数の引数には名前を付けて良い、という制約条件で行う再帰。ラムダ計算において関数はそのような制約条件がある。 (ja) В інформатиці анонімна рекурсія є рекурсією, у якій не використовується виклик функцію по імені. Це може бути зроблено або явно, використовуючи функцію більш високого порядку - передаючи функцію як аргумент і викликаючи її, - чи неявно, за допомогою функцій відображення, які дозволяють отримати доступ до певних функцій в залежності від поточного контексту. У практиці програмування анонімна рекурсія особливо використовується в JavaScript, який надає можливості відображення для її підтримки. Однак в загальній практиці програмування це вважається поганим стилем, і замість нього пропонується рекурсія з іменованими функціями. Анонімна рекурсія за допомогою явної передачі функцій в якості аргументів можлива на будь-якій мові, який підтримує функції в якості аргументів, хоча на практиці це рідко використовується, оскільки воно довше і менш зрозуміло, ніж явне рекурсія по імені. У теоретичній інформатиці важлива анонімна рекурсія, оскільки вона показує, що можна реалізувати рекурсію, не вимагаючи іменованих функцій. Це особливо важливо для лямбда-числення, яке має анонімні унарні функції, але може обчислювати будь-яку рекурсивную функцію. Ця анонімна рекурсія може бути проведена в загальному за допомогою комбінаторів з фіксованою точкою. (uk) |
dbo:wikiPageID | 3062599 (xsd:integer) |
dbo:wikiPageLength | 11778 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 983469155 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Programming_style dbc:Articles_with_example_R_code dbc:Recursion dbr:Perl dbr:Currying dbr:Indirect_recursion dbr:Combinatory_logic dbr:Object-oriented_programming dbr:Closure_(computer_science) dbr:Go_(programming_language) dbr:Anonymous_function dbr:Call_stack dbr:Callback_(computer_programming) dbr:Computer_science dbr:Mutual_recursion dbr:APL_(programming_language) dbr:Direct_recursion dbr:Higher-order_function dbr:JavaScript dbr:Lambda_calculus dbr:This_(computer_programming) dbr:R_(programming_language) dbr:Recursion_(computer_science) dbr:Reflection_(computer_programming) dbr:Self-reference dbr:Name_binding dbr:Fixed-point_combinator dbr:Dfns |
dbp:wikiPageUsesTemplate | dbt:Reflist dbt:Short_description |
dct:subject | dbc:Articles_with_example_R_code dbc:Recursion |
gold:hypernym | dbr:Recursion |
rdfs:comment | 無名再帰(むめいさいき、英: anonymous recursion, nameless recursion)とは、無名関数において再帰を行うことである。無名関数は名前を持たないため自己を呼び出すために特別の工夫が必要である。無名再帰は、関数定義では関数自身には名前を付けないが、関数の引数には名前を付けて良い、という制約条件で行う再帰。ラムダ計算において関数はそのような制約条件がある。 (ja) In computer science, anonymous recursion is recursion which does not explicitly call a function by name. This can be done either explicitly, by using a higher-order function – passing in a function as an argument and calling it – or implicitly, via reflection features which allow one to access certain functions depending on the current context, especially "the current function" or sometimes "the calling function of the current function". (en) В інформатиці анонімна рекурсія є рекурсією, у якій не використовується виклик функцію по імені. Це може бути зроблено або явно, використовуючи функцію більш високого порядку - передаючи функцію як аргумент і викликаючи її, - чи неявно, за допомогою функцій відображення, які дозволяють отримати доступ до певних функцій в залежності від поточного контексту. (uk) |
rdfs:label | Anonymous recursion (en) 無名再帰 (ja) Анонімна рекурсія (uk) |
owl:sameAs | freebase:Anonymous recursion wikidata:Anonymous recursion dbpedia-ja:Anonymous recursion dbpedia-uk:Anonymous recursion https://global.dbpedia.org/id/D2fV |
prov:wasDerivedFrom | wikipedia-en:Anonymous_recursion?oldid=983469155&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Anonymous_recursion |
is dbo:wikiPageWikiLink of | dbr:Anaphoric_macro dbr:John_M._Scholes dbr:This_(computer_programming) dbr:Direct_function dbr:Categorical_abstract_machine dbr:Recursion_(computer_science) dbr:Fixed-point_combinator |
is foaf:primaryTopic of | wikipedia-en:Anonymous_recursion |