rec-def
Version 0.1 revision 1 uploaded by JoachimBreitner.
Package meta
- Synopsis
- Recusively defined values
- Description
This library provides safe APIs that allow you to define and calculate values recursively, and still get a result out:
let s1 = rInsert 23 s2 s2 = rInsert 42 s1 in getR s1
will not loop, but rather produces the set
fromList [23,42]
See Data.Recursive.Examples for more examples, or just browse the modules
More APIs (e.g. for Natural) can be added over time, as need and good use-cases arise.
For the (unsafe) building blocks to build such APIs, see
Data.Recursive.R.Internal for the wrapper that turns an IO-implemented propagator into a pure data structure
Data.Recursive.Propagator.Naive for a naive propagator implementation
Data.Recursive.Propagator.P2 for a smarter propagator implementation for the two-point lattice, i.e. Bool
The library is not (yet) focussed on performance, and uses a rather naive propagator implementation. Expect this to be slow if you have large graphs. This may be improved in the future (e.g. by propagating only deltas, and accumulating deltas before applying a function), but for now the focus is on foremost providing this capability in the first place and getting the user-facing API right.
- Author
- Joachim Breitner
- Bug reports
- https://github.com/nomeata/haskell-rec-def/issues/new
- Category
- Data
- Copyright
- 2022 Joachim Breitner
- Homepage
- https://github.com/nomeata/haskell-rec-def
- Maintainer
- mail@joachim-breitner.de
- Package URL
- n/a
- Stability
- n/a