Closures in R Programming Language
R supports anonymous functions, which can form closures. Anonymous functions are useful when you want to define a function inline without having to name it.
To run the program, save the code in a file (e.g., closures.R
) and use the R interpreter:
In R, closures work similarly to other languages. The intSeq
function returns an anonymous function that increments and returns a counter. Each time we call intSeq()
, it creates a new environment with its own i
variable, which is then captured by the returned function.
Note that in R, we use <<-
instead of =
or <-
to modify a variable in the parent environment from within a function. This is how we achieve the incrementing behavior in the closure.
The last feature of functions we’ll look at for now is recursion.