insomnia
所属分类:数学计算
开发工具:Haskell
文件大小:0KB
下载次数:0
上传日期:2017-07-23 19:13:30
上 传 者:
sh-1993
说明: 失眠症:一种模块化概率编程语言,
(Insomnia: A modular probabilistic programming language,)
文件列表:
.travis.yml (3506, 2017-07-23)
CodeOrganization.org (6610, 2017-07-23)
LICENSE (1524, 2017-07-23)
Setup.hs (46, 2017-07-23)
TODO.org (8974, 2017-07-23)
docs/ (0, 2017-07-23)
docs/Makefile (195, 2017-07-23)
docs/guide.md (31036, 2017-07-23)
emacs/ (0, 2017-07-23)
emacs/insomnia-mode.el (1232, 2017-07-23)
examples/ (0, 2017-07-23)
examples/DataTypes.ism (1245, 2017-07-23)
examples/FirstClassModules.ism (428, 2017-07-23)
examples/IndependentPrimitives.ism (278, 2017-07-23)
examples/IteratedFlip.ism (1006, 2017-07-23)
examples/Prelude.ism (1281, 2017-07-23)
examples/PreludeTest.ism (671, 2017-07-23)
examples/boot.ism (734, 2017-07-23)
examples/boot.rkt (950, 2017-07-23)
examples/either.ism (708, 2017-07-23)
examples/evalSimplest.ism (387, 2017-07-23)
examples/fold.ism (265, 2017-07-23)
examples/fun0.ism (583, 2017-07-23)
examples/importResolve.ism (112, 2017-07-23)
examples/infer.ism (976, 2017-07-23)
examples/modmod.ism (157, 2017-07-23)
examples/normal.ism (236, 2017-07-23)
examples/numcoins.ism (273, 2017-07-23)
examples/poly.ism (417, 2017-07-23)
examples/poster.ism (805, 2017-07-23)
examples/poster.out (88144, 2017-07-23)
examples/query.ism (44, 2017-07-23)
examples/records.ism (937, 2017-07-23)
examples/seismology0.ism (8233, 2017-07-23)
examples/slips.ism (3613, 2017-07-23)
examples/slipsNested.ism (4694, 2017-07-23)
... ...
The Insomnia Programming Language
=================================
Insomnia is a strongly typed probabilistic programming language.
Slogans:
* A *model* is a distribution over *modules*.
* *Model sealing* is marginalization.
Documentation
-------------
There is a (fairly sparse at this point) [Insomnia User's Guide](https://github.com/ppaml-op3/insomnia/blob/master/docs/guide.md)
Some examples are in pretty good shape. See:
* [normal.ism](https://github.com/ppaml-op3/insomnia/blob/master/examples/normal.ism)
* [tugOfWar.ism](https://github.com/ppaml-op3/insomnia/blob/master/examples/tugOfWar.ism)
Building from source - installation instructions
------------------------------------------------
### Cabal sandbox workflow
1. Make sure you have a recent GHC (7.6+, but 7.8+ is better)
2. Make sure you have a recent cabal with support for sandboxes
$ cabal --version
cabal-install version 1.20.0.3
using version 1.20.0.0 of the Cabal library
3. Setup a cabal sandbox in the current directory.
$ cabal sandbox init
This creates a sandbox for insomnia in the current directory.
4. Run the usual cabal build
$ cabal install --enable-tests --only-dependencies
$ cabal configure --enable-tests
$ cabal build
$ cabal test
Note that installing the upstream dependencies may take a significant
amount of time.
5. Try an example in the interpreter
$ dist/build/insomnia/insomnia examples/query.ism
The expected output is a message that the file typechecked okay,
followed by a pretty-printing of the source code, followed by the
state of the type unification algorithm at the end of typechecking,
followed by the elaboration to core FΩ, followed by something like:
----------------------------------------
Typechecking FΩ
FOmega type is:
{M : Dist {x : {val : Int}}}
----------------------------------------
Running FΩ
pack
inj Cons
{#0 = {x = {val = 1}},
... several dozen more lines of output ...
(Sorry, the backend is a work in progress)
### Building HTML and PDF versions of the User's guide:
The documentation is in Markdown format. You will need [Pandoc](https://github.com/ppaml-op3/insomnia/blob/master/http://pandoc.org/) to build HTML and PDF versions.
make -C docs
Compiler
--------
There is an insomnia compiler, called `insomniac` that outputs [Gamble](https://github.com/ppaml-op3/insomnia/blob/master/https://github.com/rmculpepper/gamble) code.
It's also a work in progress.
```
$ dist/build/insomniac/insomniac examples/evalSimplest.ism
```
近期下载者:
相关文件:
收藏者: