Clojure-contracts is a library for contract programming in Clojure.
WARNING: this is a work in progress. It's not feature complete and may contain bugs.
See the tutorial.
A quick example:
user> (defn foo [x] (+ x 5))
user> (foo nil) ;=>
No message.
[Thrown class java.lang.NullPointerException]
user> (provide-contract foo (c/=> number? number?))
user> (foo nil) ;=>
Precondition failed for var #'user/foo
Expecting: number?
Given: nil
See the tutorial for details.
Add [clojure-contracts "0.0.1-SNAPSHOT"]
to your project's
dependecies. Clojars page.
Copyright (C) 2012 Dmitri Naumov
Distributed under the Eclipse Public License, the same as Clojure.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close