|
- ;;
- ;; let testing
- ;;
- (assert (not (bound? var1)))
- (assert (not (bound? var2)))
- (assert (not (bound? var3)))
- (let ((var1 1)
- (var2 [1 2 3])
- (var3 {1 2 3 4}))
- (assert (bound? var1))
- (assert (bound? var2))
- (assert (bound? var3))
- (assert (= var1 1))
- (assert (= var2 [1 2 3]))
- (assert (= var3 {1 2 3 4})))
-
- (assert (not (bound? var1)))
- (assert (not (bound? var2)))
- (assert (not (bound? var3)))
-
- (assert (= (let ((val 'sym))
- val)
- 'sym))
-
- (assert (= (let ()
- 'sym)
- 'sym))
- ;;
- ;; Quasiquote testing
- ;;
- (assert (= '() `()))
-
- (assert (= '(1 1 2)
- `(1 1 2)))
-
- (assert (= '(1 1 2)
- `(1 ,1 2)))
-
- (assert (= '(1 1 2)
- `(1 ,(- 10 9) 2)))
-
- (assert (= '(1 1 2)
- `(1 ,@(list 1 2))))
-
- (let ((body '(2 3)))
- (assert (= '(1 2 3)
- `(1 ,@body))))
-
- (let ((body '((define a 1)
- (define b 2)))
- (imports '()))
- (let ((expr `(begin ,@(map (lambda (x) `(import ,x)) imports) ,@body)))
- (assert (= '(begin
- (define a 1)
- (define b 2))))
- (eval expr)
- (assert (= a 1))
- (assert (= b 2))))
|