Causal programming in Clojure
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data
notebooks
src/whittemore
test/whittemore
.gitignore
CHANGELOG.md
LICENSE
README.md
project.clj

README.md

Whittemore

Causal programming in Clojure.

Getting started

The easiest way to get started is with Leiningen (requires Java, OpenJDK 8 recommended). Once Leiningen is installed, create a new project:

lein new whittemore demo
cd demo

A REPL can be started from within the project directory:

lein repl

Rich output (HTML, images, LaTeX) is available in Jupyter notebooks. Once Jupyter installed:

lein jupyter install-kernel # first time only
lein jupyter notebook

Graphviz is recommended for rendering causal diagrams. Whittemore will automatically fallback to viz.cljc if Graphviz is not installed, but this is much slower.

Example Usage

(use 'whittemore.core)

(identifiable?
  (model
    {:x [],
     :z [:x],
     :y [:z]}
    #{:x :y})
  (data [:x :y :z])
  (q [:y] :do [:x]))
;=> true

License

Copyright © 2018 Joshua Brule

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.