Files
slime/bin/tests/simple_built_ins.slime
T
2020-03-27 15:31:00 +01:00

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))
))