12
Clojure中我有向量「myfn1」「myfn2」「myfn3」] 我怎麼能叫一個名爲「myfn1」功能...使用字符串從矢量Clojure的類型轉換串符號
Clojure中我有向量「myfn1」「myfn2」「myfn3」] 我怎麼能叫一個名爲「myfn1」功能...使用字符串從矢量Clojure的類型轉換串符號
要調用勢必瓦爾myfn1
給出的字符串"myfn1"
功能,你可以做這樣的事情:
((resolve (symbol "myfn1")) ...) ; ... indicates where to put any arguments
因此,考慮到你的榜樣載體,假設你不需要任何額外的參數傳遞給你的函數(它足夠簡單明瞭如果需要修改此代碼),則可以執行以下操作:
(map #((resolve (symbol %))) ["myfn1" "myfn2" "myfn3"])
E.g.
user=> (map #((resolve (symbol %1)) %2) ["println" "print" "prn"] ["asdf" "asdf" "asdf"])
(asdf
asdfnil "asdf"
nil nil)
(該nil
s爲從印刷函數的返回值;請注意如何有後asdf
通過print
不產生斷行和asdf
產生由prn
被引述。)