2010-03-09 2 views

ответ

14

Чтобы позвонить функция связана с Var myfn1 данной строки "myfn1", вы могли бы сделать что-то вроде этого:

((resolve (symbol "myfn1")) ...) ; ... indicates where to put any arguments 

Таким образом, учитывая ваш пример вектора и при условии, что вам не нужно передавать какие-либо дополнительные аргументы для ваших функций (достаточно straighforward если вы это сделаете), вы можете сделать следующее:

(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) 

(The nil s является значение возврата из функций полиграфических, обратите внимание, как нет LINEBREAK после asdf производства print и asdf производит на prn котируется.)

Смежные вопросы