Basic Werk | Memo | Contact


MEMOMEM

CommonLisp_defmacro_test_01



Common Lisp でリストの末尾に追加するマクロ



(defmacro push-2-tail (lat x) `(setf ,lat (append ,lat (list ,x))))
(defvar *db* '((a b c) (d e f))) (push-2-tail *db* '(g h i)) *db* ;; -> ((a b c) (d e f) (g h i))
;; なぜなら (push-2-tail *db* '(g h i)) は ;; こう展開される(こう書いたのと同じだ)から ;; (setf *db* (append *db* (list '(g h i))))


#CommonLisp #defmacro #push



SN 2013/08/01 00:41:18

Archives > CommonLisp_defmacro_test_01.html







MEMOMEM



More Contents

Basic Werk | Previous Blog

仕事と日 | 中村 心