Skip to content
Tools for Functional Programming in R
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R
docs
man
tests
.Rbuildignore
.gitattributes
.gitignore
.travis.yml
DESCRIPTION
LICENSE
NAMESPACE
NEWS.md
README.Rmd
README.md
appveyor.yml
cran-comments.md
functools.Rproj

README.md

functools

CRAN_Status_Badge Downloads from the RStudio CRAN mirror Build Status Build status codecov.io Project Status: Active - The project has reached a stable, usable state and is being actively developed.

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

  • Add support to the usual higher order functional suspects (Filter(), Map(), Reduce(), etc.) with higher order functions (Compose(), Memoise(), Partial(), Reject(), Fail_With(), Reduce_Right(), All(), Any(), and Best()).

  • Supply higher order function generators (Andify() and Orify()) to make composing predicate functions easier.

  • Provide wrappers (Apply(), Lapply(), Mapply(), Sapply(), Tapply(), and Vapply()) around their respective base R functionals to create an API with consistent naming convention, positional arguments, and argument names.

  • Implement common constants as functions (True(), False(), Identity(), Null(), and Na()) for point-free programming.

  • Extend abstract concepts of existiness and truthiness through functions (Existy() and Truthy()).

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)

Installation

You can install the latest development version from CRAN:

install.packages("functools")

Or from GitHub with:

if (packageVersion("devtools") < 1.6) {
  install.packages("devtools")
}
devtools::install_github("paulhendricks/functools")

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

Citation

To cite package ‘functools’ in publications use:

Paul Hendricks (2015). functools: Functional Programming in R. R package version 0.2.0. https://CRAN.R-project.org/package=functools

A BibTeX entry for LaTeX users is

@Manual{,
  title = {functools: Functional Programming in R},
  author = {Paul Hendricks},
  year = {2015},
  note = {R package version 0.2.0},
  url = {https://CRAN.R-project.org/package=functools},
}
You can’t perform that action at this time.