Skip to content
Newer
Older
100644 38 lines (22 sloc) 1.55 KB
c6a149c @ekmett machines
authored
1 machines
2 ========
af33403 @ekmett repository expanded
authored
3
38efa69 @ekmett fix trailing ) [ci skip]
authored
4 [![Hackage](https://img.shields.io/hackage/v/machines.svg)](https://hackage.haskell.org/package/machines) [![Build Status](https://secure.travis-ci.org/ekmett/machines.png?branch=master)](http://travis-ci.org/ekmett/machines)
af33403 @ekmett repository expanded
authored
5
46bdc22 @ekmett readme tweaks
authored
6 *Ceci n'est pas une pipe*
7
2d96cd0 @ekmett rough description
authored
8 Machines are demand driven input sources like pipes or conduits, but can support multiple inputs.
9
10 You design a `Machine` by writing a `Plan`. You then `construct` the machine.
11
12 Simple machines that take one input are called a `Process` and processes form a `Category`. More generally you can attach a
13 `Process` to the output of any type of `Machine`, yielding a new `Machine`.
14
15 More complicated machines provide other ways of connecting to them.
16
17 Typically the use of machines proceeds by using simple plans into machine `Tee`s and `Wye`s, capping many of the inputs to
18 those with possibly monadic sources, feeding the rest input (possibly repeatedly) and calling `run` or `runT` to get the
19 answers out.
20
21 There is a lot of flexibility when building a machine in choosing between empowering the machine to run its own monadic effects
22 or delegating that responsibility to a custom driver.
23
5e78827 @kpox Update README.markdown
kpox authored
24 A port of this design to scala is available from runarorama/scala-machines
2d96cd0 @ekmett rough description
authored
25
af9c627 @ekmett Mentioned Runar's slides in the README
authored
26 Runar's slides are also available from https://dl.dropbox.com/u/4588997/Machines.pdf
27
733e15c @alanz Adding reference to examples repo
alanz authored
28 Some worked examples are here https://github.com/alanz/machines-play
29
af33403 @ekmett repository expanded
authored
30 Contact Information
31 -------------------
32
33 Contributions and bug reports are welcome!
34
35 Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
36
37 -Edward Kmett
Something went wrong with that request. Please try again.