Reimplemented assert as a macro.

This commit is contained in:
Vincent St-Amour 2010-06-15 12:27:28 -04:00
parent 93e5d0e9dc
commit 8dfd7d87ec

View File

@ -1,8 +1,10 @@
#lang scheme/base
(provide assert)
(define (assert v [pred values])
(unless (pred v)
(error "Assertion failed"))
v)
(define-syntax assert
(syntax-rules ()
((assert v)
(or v (error "Assertion failed")))
((assert v pred)
(let ((val v))
(if (pred val) val (error "Assertion failed"))))))