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 #lang scheme/base
(provide assert) (provide assert)
(define (assert v [pred values]) (define-syntax assert
(unless (pred v) (syntax-rules ()
(error "Assertion failed")) ((assert v)
v) (or v (error "Assertion failed")))
((assert v pred)
(let ((val v))
(if (pred val) val (error "Assertion failed"))))))