Reimplemented assert as a macro.
This commit is contained in:
parent
93e5d0e9dc
commit
8dfd7d87ec
|
@ -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"))))))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user