dsというものを作りたいので
(let [a 2]
(ds a))
->
"a->2"
と
(let [a 1 b 2 c 3]
(ds a b c))
->
"a->1, b->2, c->3"
そしてこれまでのところ、私は次のようになっています:
(defmacro ds3 [a b c]
`(clojure.string/join ", "
[(str '~a "->" ~a)
(str '~b "->" ~b)
(str '~c "->" ~c)]))
うまくいくようです:
(let [ a 1 b 2 c 3]
(ds3 a b c)) ; "1->1, 2->2, 3->3"
明らかに、ds1 ds2 ds3 などを定義できますが、可変長にする方法を知りたいですか?