0
我嘗試編寫以數據集作爲參數並在單個xy圖上查看來自數據集的所有數據的宏。 例如,我創建數據集如何在clojure中使用宏查看包含多行的xy-plot?
(def test-data
[["RECALL" "CAFE" "CLIPPERS"]
[0 0 0]
[14 15 13]
[160 146 155]])
,寫這個
(defmacro figure
[datas]
(let [x `(range 0 (nrow ~datas)) y `(rest (:column-names ~datas))]
`(let [datas# ~datas]
(with-data datas#
(doto
(xy-plot ~x ($ (first (:column-names datas#))))
[email protected](map (fn [arg] `(add-lines ~x ($ ~arg))) (eval y));;this line, wheh rest of columns have added to xy plot, get me a trouble
view)))))
(figure test-data)
但隨着代碼的eval問題。我認爲,這不是Clojure慣用的方式,這在某些情況下不起作用。 我已經嘗試了各種各樣的狂野技巧,以獲得數據集的列名作爲評估參數,但這並沒有奏效。
在宏的宏展開時,是否存在評估表達式的方法?
爲什麼你要在這裏使用宏?我認爲職能將完成這項工作。 – 2013-02-12 09:51:35