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