A Clojure library for multi-strategy (and meta-strategy) software contracts.
- clone this repository
- do
lein install
- add to your project dependencies
[pisces "0.1.0-SNAPSHOT"]
- add to your namespace declaration
(:require [pisces.core :as pisces])
The basic system allows you to write contracts for programs under different enforcement strategies:
(def natc (predc (fn [x] (>= x 0))))
(def monitored-fact
(mcon/mon eager
(func (memo eager) natc semi natc)
factorial))
For more examples, check out the the code in src/pisces/paper.clj
.
- Add a tutorial
Copyright © 2017 Cameron Swords
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.