1 ;; Testing cons function
8 (cons (list 1) (list 2 3))
17 ;; Testing concat function
22 (concat (list 1 2) (list 3 4))
24 (concat (list 1 2) (list 3 4) (list 5 6))
28 (concat (list) (list))
33 (concat a b (list 5 6))
40 ;; Testing regular quote
48 ;; Testing simple quasiquote
53 (quasiquote (1 2 (3 4)))
59 (quasiquote (unquote 7))
65 (quasiquote (unquote a))
69 (quasiquote (1 (unquote a) 3))
71 (def! b (quote (1 "b" "d")))
75 (quasiquote (1 (unquote b) 3))
77 (quasiquote ((unquote 1) (unquote 2)))
80 ;; Testing splice-unquote
81 (def! c (quote (1 "b" "d")))
85 (quasiquote (1 (splice-unquote c) 3))
89 ;; Testing symbol equality
90 (= (quote abc) (quote abc))
92 (= (quote abc) (quote abcd))
98 (= "abc" (str (quote abc)))
106 ;;; TODO: needs expect line length fix
107 ;;;((fn* [q] (quasiquote ((unquote q) (quote (unquote q))))) (quote (fn* [q] (quasiquote ((unquote q) (quote (unquote q)))))))
108 ;;;=>((fn* [q] (quasiquote ((unquote q) (quote (unquote q))))) (quote (fn* [q] (quasiquote ((unquote q) (quote (unquote q)))))))
112 ;; -------- Deferrable Functionality --------
114 ;; Testing ' (quote) reader macro
122 ;; Testing ` (quasiquote) reader macro
132 ;; Testing ~ (unquote) reader macro
139 (def! b '(1 "b" "d"))
146 ;; Testing ~@ (splice-unquote) reader macro
147 (def! c '(1 "b" "d"))
157 ;; -------- Optional Functionality --------
159 ;; Testing cons and concat with vectors
165 (concat [1 2] (list 3 4) [5 6])
168 ;; Testing unquote with vectors
176 ;; Testing splice-unquote with vectors
177 (def! c '(1 "b" "d"))
182 ;;;;=>[1 1 "b" "d" 3]