Now usable

This commit is contained in:
FelixBrendel
2020-03-27 15:31:00 +01:00
parent 77b9a8c6ae
commit af55ee1314
9 changed files with 88 additions and 83 deletions
+40 -40
View File
@@ -1,58 +1,58 @@
;;
;; 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)))
;; (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 (not (bound? var1)))
;; (assert (not (bound? var2)))
;; (assert (not (bound? var3)))
(assert (= (let ((val 'sym))
val)
'sym))
;; (assert (= (let ((val 'sym))
;; val)
;; 'sym))
(assert (= (let ()
'sym)
'sym))
;;
;; Quasiquote testing
;;
(assert (= '() `()))
;; (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 ,1 2)))
;; (assert (= '(1 1 2)
;; `(1 ,1 2)))
(assert (= '(1 1 2)
`(1 ,(- 10 9) 2)))
;; (assert (= '(1 1 2)
;; `(1 ,(- 10 9) 2)))
(assert (= '(1 1 2)
`(1 ,@(list 1 2))))
;; (assert (= '(1 1 2)
;; `(1 ,@(list 1 2))))
(let ((body '(2 3)))
(assert (= '(1 2 3)
`(1 ,@body))))
;; (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))))
(assert (= '(begin (define a 1) (define b 2)) expr))
(eval expr)
(assert (= a 1))
(assert (= b 2))))
(assert (= b 2))
))