我想寫一個宏,我可以用它來調用一個新線程上的函數,並打印該函數的名稱以及運行它之後的線程名稱。與clojure宏有問題
到目前爲止,我所擁有的是:
(defmacro start-threads [f]
'(let [t (Thread. 'f)]
(prn (str "running " 'f " on: " (.getName t)))))
,當我運行:
(start-threads funcname)
輸出: 「上運行F:螺紋-47」。我希望它輸出:「運行funcname:Thread-47。當我嘗試去引用它時,試着評估函數。我知道我沒有運行.start在這裏的線程,但我應該能夠添加在這之後,我確信一個宏並不是完全必要的,因爲我只是開始考慮clojure中的宏是如何工作的,所以我主要想知道好奇心。
錯誤的單引號。 –