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.2.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
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.5 && <5), base-orphans (>=0.5.4 && <0.9), bifunctors (>=4 && <6), comonad (>=4 && <6), containers (>=0.4.2.1 && <0.7), data-fix (>=0.3.0 && <0.4), free (>=4 && <6), ghc-prim, nats, semigroups (>=0.10 && <1), template-haskell (>=2.5.0.0 && <2.18), th-abstraction (>=0.4 && <0.5), transformers (>=0.3.0.0 && <1), transformers-compat (>=0.3 && <1) [details] |
Tested with | ghc ==7.4.2, ghc ==7.6.3, ghc ==7.8.4, ghc ==7.10.3, ghc ==8.0.2, ghc ==8.2.2, ghc ==8.4.4, ghc ==8.6.5, ghc ==8.8.3, ghc ==8.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> |
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 luc_tielen at 2021-03-20T20:14:40Z |
Distributions | Arch:5.2.3, Debian:5.1.3, LTSHaskell:5.2.3, NixOS:5.2.3, Stackage:5.2.3 |
Reverse Dependencies | 58 direct, 264 indirect [details] |
Downloads | 69668 total (314 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] |