Changed description
from
(Up to date documentation is maintained at
<https://mstksg.github.com/auto>)
Read the README first!
<https://github.com/mstksg/auto/blob/master/README.md>
, for motivating examples, and concrete explanations of
things described here.
/auto/ is a Haskell DSL and platform providing
declarative, compositional, denotative semantics for
discrete-step, locally stateful, interactive programs,
games, and automations, with implicitly derived
serialization. It is suited for any domain where either
the input or the output can be described as a stream of
values: a stream of input events, output views, etc.
/auto/ works by providing a type that encapsulates
"value stream transformers", or locally stateful
functions; by specifying your program as a (potentially
cyclic) graph of relationships between value streams, you
create a way of "declaring" a system based simply on
static relationships between quantities.
Instead of a "state monad" type solution, where all
functions have access to a rigid global state, /auto/
works by specifying relationships which each exist
independently and on their own, without any global state.
A more fuller exposition is in the `README.md`, in this
project directory and also online at
<https://github.com/mstksg/auto/blob/master/README.md>;
you can get started by reading the tutorial, which is
also in this project directory in the `tutorial`
directory, and also incidentally online at
<https://github.com/mstksg/auto/blob/master/tutorial/tutorial.md>.
Also, check out the
<https://github.com/mstksg/auto-examples auto-examples>
repository on github for plenty of real-world and toy
examples to learn from; I've also done a
<blog.jle.im/entries/series/+all-about-auto blog series>
on this library, for examples and full tutorials!
Support available on freenode's #haskell-auto,
#haskell-game, and also on the github issue
tracker for the source repository.
Import "Control.Auto" to begin!
to (Up to date documentation is maintained at
<https://mstksg.github.com/auto>)
Read the README first!
<https://github.com/mstksg/auto/blob/master/README.md>
, for motivating examples, and concrete explanations of
things described here.
/auto/ is a Haskell DSL and platform providing
declarative, compositional, denotative semantics for
discrete-step, locally stateful, interactive programs,
games, and automations, with implicitly derived
serialization. It is suited for any domain where either
the input or the output can be described as a stream of
values: a stream of input events, output views, etc.
/auto/ works by providing a type that encapsulates
"value stream transformers", or locally stateful
functions; by specifying your program as a (potentially
cyclic) graph of relationships between value streams, you
create a way of "declaring" a system based simply on
static relationships between quantities.
Instead of a "state monad" type solution, where all
functions have access to a rigid global state, /auto/
works by specifying relationships which each exist
independently and on their own, without any global state.
A more fuller exposition is in the `README.md`, in this
project directory and also online at
<https://github.com/mstksg/auto/blob/master/README.md>;
you can get started by reading the tutorial, which is
also in this project directory in the `tutorial`
directory, and also incidentally online at
<https://github.com/mstksg/auto/blob/master/tutorial/tutorial.md>.
Also, check out the
<https://github.com/mstksg/auto-examples auto-examples>
repository on github for plenty of real-world and toy
examples to learn from; I've also done a
<blog.jle.im/entries/series/+all-about-auto blog series>
on this library, with examples and full tutorials!
Support available on freenode's #haskell-auto,
#haskell-game, and also on the github issue
tracker for the source repository.
Import "Control.Auto" to begin!