The machines package

[Tags: bsd3, library]

Networked stream transducers


[Skip to ReadMe]

Properties

Versions0.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
Change logCHANGELOG.markdown
Dependenciesbase (>=4.5 && <5), comonad (==3.0.*), containers (>=0.3 && <0.6), free (>=3.1.1 && <3.3), mtl (>=2.1.1 && <2.2), pointed (==3.0.*), profunctors (>=3.0 && <3.2), semigroups (>=0.8.3 && <0.9), transformers (==0.3.*) [details]
LicenseBSD3
CopyrightCopyright (C) 2012 Edward A. Kmett
AuthorEdward A. Kmett, Rúnar Bjarnason
MaintainerEdward A. Kmett <ekmett@gmail.com>
Stabilityprovisional
CategoryControl, Enumerator
Home pagehttp://github.com/ekmett/machines/
Bug trackerhttp://github.com/ekmett/machines/issues
Source repositoryhead: git clone git://github.com/ekmett/machines.git
UploadedSat Dec 22 15:16:48 UTC 2012 by EdwardKmett
UpdatedThu May 21 13:32:28 UTC 2015 by AdamBergmark to revision 1
DistributionsLTSHaskell:0.5.1, Stackage:0.5.1
Downloads4318 total (209 in last 30 days)
Votes
2 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for machines-0.2.1.2

machines

Build Status

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/machines

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