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.

近期下载者

相关文件


收藏者