functools provides tools for Functional Programming in R. It accomplishes several goals:

functools achieves these goals through three main types of function design patterns:

  • Closures (functions that take data and return functions)

  • Functionals (functions that take functions and return data)

  • Function Operators (functions that take functions and return functions)


You can install the latest development version from CRAN:


Or from GitHub with:

if (packageVersion("devtools") < 1.6) {

If you encounter a clear bug, please file a minimal reproducible example on GitHub.


To cite package ‘functools’ in publications use:

Paul Hendricks (2015). functools: Functional Programming in R. R package version 0.2.0.

A BibTeX entry for LaTeX users is

  title = {functools: Functional Programming in R},
  author = {Paul Hendricks},
  year = {2015},
  note = {R package version 0.2.0},
  url = {},