1

コード

(defn ex20 []
  (run*
    [x]
    (resto '(c o r n) (list x 'r 'n))))

(defn ex20a []
  (run*
    [x]
    (resto '(c o r n) `(~x r n))))

結果

(ex20) -> (o)
(ex20a) -> ()

質問:

なんで?どうしたの?run *とマクロの間に奇妙な相互作用がありますか?

ありがとう!

4

1 に答える 1

1

構文引用名前空間記号:

(defn ex20a []
  (run* [x]
    (resto `(c o r n) `(~x r n))))

また

(defn ex20a []
  (run* [x]
    (resto '(c o r n) (list x 'r 'n))))
于 2012-05-31T21:43:58.967 に答える