haskell-coop
所属分类:工具库
开发工具:Haskell
文件大小:0KB
下载次数:0
上传日期:2019-12-06 14:43:59
上 传 者:
sh-1993
说明: 一个用于使用有效运行程序进行编程的实验Haskell库。,
(An experimental Haskell library for programming with effectful runners.,)
文件列表:
LICENSE.md (1068, 2019-12-06)
Makefile (260, 2019-12-06)
examples/ (0, 2019-12-06)
examples/with_signals/ (0, 2019-12-06)
examples/with_signals/ExcMLStateTests.hs (2832, 2019-12-06)
examples/with_signals/MonotonicMLStateTests.hs (2911, 2019-12-06)
examples/with_signals/SignalMLStateTests.hs (2401, 2019-12-06)
examples/without_signals/ (0, 2019-12-06)
examples/without_signals/AmbientsTests.hs (1712, 2019-12-06)
examples/without_signals/CostTests.hs (3023, 2019-12-06)
examples/without_signals/FPStateTests.hs (969, 2019-12-06)
examples/without_signals/FileIOAndMLStateTests.hs (1078, 2019-12-06)
examples/without_signals/FileIOTests.hs (4669, 2019-12-06)
examples/without_signals/IntStateTests.hs (1023, 2019-12-06)
examples/without_signals/MLFPStateFwdTests.hs (1073, 2019-12-06)
examples/without_signals/MLFPStateTests.hs (1088, 2019-12-06)
examples/without_signals/MLStateTests.hs (1634, 2019-12-06)
examples/without_signals/OldFileIOTests.hs (3531, 2019-12-06)
examples/without_signals/TwoLevelStateTest.hs (2370, 2019-12-06)
haskell-coop.cabal (1886, 2019-12-06)
src/ (0, 2019-12-06)
src/Control/ (0, 2019-12-06)
src/Control/Runner.hs (14806, 2019-12-06)
src/Control/Runner/ (0, 2019-12-06)
src/Control/Runner/Ambients.hs (9743, 2019-12-06)
src/Control/Runner/Cost.hs (2468, 2019-12-06)
src/Control/Runner/FPState.hs (4098, 2019-12-06)
src/Control/Runner/FileIO.hs (8420, 2019-12-06)
src/Control/Runner/FileIOAndMLState.hs (1655, 2019-12-06)
src/Control/Runner/IntMLState.hs (4415, 2019-12-06)
src/Control/Runner/IntState.hs (4142, 2019-12-06)
src/Control/Runner/MLFPState.hs (2486, 2019-12-06)
src/Control/Runner/MLFPStateFwd.hs (3848, 2019-12-06)
src/Control/Runner/MLState.hs (5501, 2019-12-06)
src/Control/Runner/OldFileIO.hs (10350, 2019-12-06)
src/Control/SignalRunner.hs (25002, 2019-12-06)
src/Control/SignalRunner/ (0, 2019-12-06)
src/Control/SignalRunner/ExcMLState.hs (7955, 2019-12-06)
src/Control/SignalRunner/MonotonicMLState.hs (7825, 2019-12-06)
... ...
# Haskell-Coop
Haskell-Coop is an experimental Haskell library for programming with effectful runners.
This library is based on ongoing research of [Danel Ahman](https://danel.ahman.ee)
and [Andrej Bauer](http://www.andrej.com). Interested readers should check out a
recent draft [Runners in action](https://arxiv.org/abs/1910.11629) that develops
the theoretical underpinnings, presents a core calculus for programming with runners
that the Haskell-Coop library implements, and discusses various example uses of runners.
For general background reading on algebraic effects and handlers, we recommend the lecture
notes [What is algebraic about algebraic effects and handlers?](https://arxiv.org/abs/1807.05923).
Section 4 of these lecture notes discusses ordinary runners of algebraic effects (also known in the
literature as comodels of algebraic effects).
## Prerequisites
To build Haskell-Coop, you need a working installation
of [Haskell](https://www.haskell.org/platform/),
and the [Cabal](https://www.haskell.org/cabal/) package manager and build system.
## Building haskell-coop
You can type:
- `make` to locally build the Haskell-Coop library, generate documentation, and typecheck examples.
- `make build` to locally build the Haskell-Coop library and generate documentation.
- `make examples` to typecheck examples.
- `make clean` to clean up.
Building Haskell-Coop uses `cabal new-build` to locally build the library and all its dependencies,
and to generate Haddock documentation. The generated documentation can be found in
`dist-newstyle/build/platform/ghc-version/haskell-coop-version/doc/html/haskell-coop/index.html`.
The examples are typechecked with `ghci`.
## Entry points
There are two main entry points to the Haskell-Coop library:
- [src/Control/Runner.hs](src/Control/Runner.hs) that implements a restricted form of effectful runners (without exceptions and signals).
- [src/Control/SignalRunner.hs](src/Control/SignalRunner.hs) that implements the general form of effectful runners (with exceptions and signals).
The directories [src/Control/Runner/](src/Control/Runner/)
and [src/Control/SignalRunner/](src/Control/SignalRunner/) contain various example
runners that implement file IO, ML-style state, their combinations, ambient functions as present
in the [Koka](https://github.com/koka-lang/koka) language, etc.
Example uses of these runners can be found in [examples/without_signals/](examples/without_signals/)
and [examples/with_signals/](examples/with_signals/).
## Further documentation
Further documentation of the Haskell-Coop library can be found in its individual modules.
## Acknowledgements
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skodowska-Curie grant agreement No 834146. | |
This material is based upon work supported by the Air Force Office of Scientific Research under award number FA9550-17-1-0326. | |
近期下载者:
相关文件:
收藏者: