Liking cljdoc? Tell your friends :D

Clojure-contracts

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.

Usage

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.

Installation

Add [clojure-contracts "0.0.1-SNAPSHOT"] to your project's dependecies. Clojars page.

License

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