59 lines
1.2 KiB
Plaintext
59 lines
1.2 KiB
Plaintext
;;
|
|
;; 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)) expr))
|
|
(eval expr)
|
|
(assert (= a 1))
|
|
(assert (= b 2))
|
|
))
|
|
|