backquote

バッククォートの練習。
入れ子になった時の動きがいまいち分かってない。
vectorにも使えるとは知らなかった。(文字列はダメだった)

CL-USER> (setq a 100 b '(1 2 3))
(1 2 3)

CL-USER> `(,a ,@b)
(100 1 2 3)
CL-USER> `#(a ,a ,b ,@b)
#(A 100 (1 2 3) 1 2 3)

CL-USER> ``(a)
'(A)
CL-USER> ```(a)
''(A)

CL-USER> ``(,a)
(LIST A)
CL-USER> ``(,,a)
(LIST 100)
CL-USER> ```(,,a)
(LIST 'LIST A)

CL-USER> `(`(a))
('(A))
CL-USER> `(`,(a))
((A))
CL-USER> `(`(,a))
((LIST A))
CL-USER> `(`,(,a))
((100))

;; 連結
CL-USER> (setq x '(1 2 3) y '(4 5 6))
(4 5 6)
CL-USER> (append x y)
(1 2 3 4 5 6)
CL-USER> (concatenate 'list x y)
(1 2 3 4 5 6)
CL-USER> `(,@x ,@y)
(1 2 3 4 5 6)