High performance, concurrent functional programming abstractions
Go to file
Harendra Kumar 55356f646e Simplify state passing
we do not need to pass the state via yield as the state is pretty much local to
a sequence of parallel computations and passing it when running a computation
or embedding it inside the lazy computation (remaining part) is enough.
2017-09-19 16:27:47 +05:30
benchmark A small performance tweak for the benchmark 2017-09-12 20:15:55 +05:30
examples replace error with fail 2017-09-18 16:07:52 +05:30
src Simplify state passing 2017-09-19 16:27:47 +05:30
test Fix test for composeAndComposeSimple function 2017-09-15 23:36:39 +05:30
.travis.yml Fix build/travis config for ghc 7.10.3 2017-09-05 15:18:49 +05:30
appveyor.yml Add travis, appveyor ci files 2017-08-30 15:16:14 +05:30
asyncly.cabal Fix build for 7.10.3 2017-09-14 08:40:50 +05:30
LICENSE Use BSD 3-clause license for the lazy implementation 2017-09-04 15:56:05 +05:30
README.md Update readme with overview 2017-09-04 16:07:46 +05:30
stack.yaml Change the stack resolver to GHC 8.2.1 nightly 2017-09-09 13:42:16 +05:30

Asyncly

Build Status Windows Build status Coverage Status

Asyncly is best described as a superset of list transformer (ListT) or logic programming monad (LogicT) with additional support for concurrent operation. Monadic streams of data can be composed using serial or parallel compositions with or without fair interleaving, enabling a high level composition of concurrent tasks without requiring knowledge of low level concurrency primitives. The programmer just expresses whether a task can run in parallel with another. Threads, synchronization and concurrency rate control is handled automatically.

This library was originally inspired by the transient package authored by Alberto G. Corona.