2010-03-09 72 views

回答

14

要调用势必瓦尔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被引述。)