recursion-schemes: Representing common recursion patterns as higher-order functions
Many recursive functions share the same structure, e.g. pattern-match on the input and, depending on the data constructor, either recur on a smaller input or terminate the recursion with the base case. Another one: start with a seed value, use it to produce the first element of an infinite list, and recur on a modified seed in order to produce the rest of the list. Such a structure is called a recursion scheme. Using higher-order functions to implement those recursion schemes makes your code clearer, faster, and safer. See README for details.
[Skip to Readme]
Modules
[Index] [Quick Jump]
Flags
Manual Flags
Name | Description | Default |
---|---|---|
template-haskell | About Template Haskell derivations | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- recursion-schemes-5.2.3.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1, 0.1.1, 0.2, 0.2.1, 0.2.2, 0.3.0, 0.3.0.1, 0.4.0, 0.4.0.1, 0.4.0.2, 0.4.0.3, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.5.0.1, 1.8.0, 1.8.0.1, 1.8.0.2, 2.0, 2.0.1, 2.0.1.1, 2.0.1.2, 2.0.2, 2.1, 3.0, 3.0.0.1, 3.0.0.2, 4.0, 4.1, 4.1.1, 4.1.2, 5, 5.0.1, 5.0.2, 5.0.3, 5.1, 5.1.1, 5.1.1.1, 5.1.2, 5.1.3, 5.2, 5.2.1, 5.2.2, 5.2.2.1, 5.2.2.2, 5.2.2.3, 5.2.2.4, 5.2.2.5, 5.2.3 (info) |
---|---|
Change log | CHANGELOG.markdown |
Dependencies | base (>=4.9 && <5), bifunctors (>=4 && <6), comonad (>=4 && <6), containers (>=0.4.2.1 && <0.8), data-fix (>=0.3.0 && <0.4), free (>=4 && <6), template-haskell (>=2.11.0.0 && <2.24), th-abstraction (>=0.4 && <0.8), transformers (>=0.4.2.0 && <1) [details] |
Tested with | ghc ==8.0.2, ghc ==8.2.2, ghc ==8.4.4, ghc ==8.6.5, ghc ==8.8.4, ghc ==8.10.7, ghc ==9.0.2, ghc ==9.2.8, ghc ==9.4.8, ghc ==9.6.5, ghc ==9.8.2, ghc ==9.10.1 |
License | BSD-2-Clause |
Copyright | Copyright (C) 2008-2015 Edward A. Kmett |
Author | Edward A. Kmett |
Maintainer | "Samuel Gélineau" <gelisam@gmail.com>, "Ryan Scott" <ryan.gl.scott@gmail.com>, "Luc Tielen" <luc.tielen@gmail.com> |
Revised | Revision 1 made by gelisam at 2024-12-07T03:27:01Z |
Category | Control, Recursion |
Home page | http://github.com/ekmett/recursion-schemes/ |
Bug tracker | http://github.com/ekmett/recursion-schemes/issues |
Source repo | head: git clone git://github.com/ekmett/recursion-schemes.git |
Uploaded | by ryanglscott at 2024-06-12T12:08:31Z |
Distributions | Arch:5.2.3, Debian:5.1.3, LTSHaskell:5.2.3, NixOS:5.2.3, Stackage:5.2.3 |
Reverse Dependencies | 57 direct, 263 indirect [details] |
Downloads | 69313 total (268 in the last 30 days) |
Rating | 2.75 (votes: 7) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |