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.
and 16 Related for: Anonymous recursion information
In computer science, anonymousrecursion is recursion which does not explicitly call a function by name. This can be done either explicitly, by using a...
denotes recursion or self-reference by the function, and ∇∇ denotes self-reference by the operator. Such denotation permits anonymousrecursion. Error...
a generically defined function, often a looping construct or recursion scheme. Anonymous functions are a convenient way to specify such function arguments...
depth of recursion. This could make recursion prohibitively expensive to use instead of imperative loops. However, a special form of recursion known as...
support recursion natively overcome this by referring to the function definition by name. Lambda calculus cannot express this: all functions are anonymous in...
that uses the lambda-symbol ( λ {\displaystyle \lambda } ) to denote anonymous function abstraction. In this context, types are usually objects of a...
is an optimizing compiler, and uses field and function inlining, tail recursion elimination, constant folding, loop unrolling and dead code elimination...
impairment of a protected computer. He is suspected of using the name "recursion" and assisting LulzSec in their early hack against Sony Pictures Entertainment...
customers. In addition, many home networking routers implement DNS caches and recursion to improve efficiency in the local network. The client side of the DNS...
n = Math.round(n); } // The above checks need not be repeated in the recursion, hence defining the actual recursive part separately below. // The following...
allow mutual recursion, which is, in a sense, more lifted than is supported in lambda calculus. Lambda calculus does not support mutual recursion and only...
features a static type system, type inference, parametric polymorphism, tail recursion, pattern matching, first class lexical closures, functors (parametric...
(typically because no change to the current stack is required), and in deep recursion, tail calling can have substantial positive impact on performance, because...