machines: Networked stream transducers
Networked stream transducers
Rúnar Bjarnason's talk on machines can be downloaded from: https://dl.dropbox.com/u/4588997/Machines.pdf
[Skip to Readme]
Downloads
- machines-0.6.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
- No Candidates
| Versions [RSS] | 0.1, 0.1.1, 0.1.2, 0.2.1, 0.2.1.1, 0.2.1.2, 0.2.1.3, 0.2.2, 0.2.3, 0.2.3.1, 0.2.4, 0.2.5, 0.4, 0.4.0.1, 0.4.1, 0.5.1, 0.6, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7, 0.7.1, 0.7.2, 0.7.3, 0.7.4 |
|---|---|
| Change log | CHANGELOG.markdown |
| Dependencies | adjunctions (>=4.2 && <5), base (>=4.5 && <4.13), comonad (>=3 && <6), containers (>=0.3 && <0.6), distributive (<0.7), fail (>=4.9 && <4.10), mtl (>=2 && <2.3), pointed (>=3 && <6), profunctors (>=3 && <6), semigroupoids (>=5 && <6), semigroups (>=0.8.3 && <1), transformers (>=0.3 && <0.6), transformers-compat (>=0.3), void (>=0.6.1 && <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.1 |
| License | BSD-3-Clause |
| Copyright | Copyright (C) 2012-2015 Edward A. Kmett |
| Author | Edward A. Kmett, Rúnar Bjarnason, Josh Cough |
| Maintainer | Edward A. Kmett <ekmett@gmail.com> |
| Revised | Revision 11 made by HerbertValerioRiedel at 2019年09月02日T16:26:28Z |
| Category | Control, Enumerator |
| Home page | http://github.com/ekmett/machines/ |
| Bug tracker | http://github.com/ekmett/machines/issues |
| Source repo | head: git clone git://github.com/ekmett/machines.git |
| Uploaded | by ryanglscott at 2017年07月28日T23:40:54Z |
| Distributions | LTSHaskell:0.7.4, NixOS:0.7.4, Stackage:0.7.4 |
| Reverse Dependencies | 33 direct, 3 indirect [details] |
| Downloads | 28599 total (37 in the last 30 days) |
| Rating | 2.5 (votes: 4) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2017年07月29日 [all 1 reports] |
Readme for machines-0.6.3
[back to package description]machines
Ceci n'est pas une pipe
Machines are demand driven input sources like pipes or conduits, but can support multiple inputs.
You design a Machine by writing a Plan. You then construct the machine.
Simple machines that take one input are called a Process and processes form a Category. More generally you can attach a
Process to the output of any type of Machine, yielding a new Machine.
More complicated machines provide other ways of connecting to them.
Typically the use of machines proceeds by using simple plans into machine Tees and Wyes, capping many of the inputs to
those with possibly monadic sources, feeding the rest input (possibly repeatedly) and calling run or runT to get the
answers out.
There is a lot of flexibility when building a machine in choosing between empowering the machine to run its own monadic effects or delegating that responsibility to a custom driver.
A port of this design to scala is available from runarorama/scala-machines
Runar's slides are also available from https://dl.dropbox.com/u/4588997/Machines.pdf
Some worked examples are here https://github.com/alanz/machines-play
Contact Information
Contributions and bug reports are welcome!
Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
-Edward Kmett