[REBOL] design by contract docs ...
From: m::koopmans2::chello::nl at: 19-Sep-2001 18:00
Yes, it does help you a lot, as you can have pre and post conditions.
A contract takes the form:
test: contract [param-block] [ pre [ [cond1] [cond2]] post
[[cond1][cond2]] ] [ local vars] [body]
the pre and post parts are optional, and a condition may contain code in
parntheses, so you can have dynamic conditions per contarct invocatation
(conditions are composed everytime they are invoked).
We use it or our large scale app to do database checks and all sorts of
- Does a customer exist?
- Is the connection alive
- is the input a positive number?
It realy helps to robustify your code. If a condition is violated you get an
error of the form:
--the post condition "x>0" was not met
You can find contract.r in the Rebol script lib.