Ответ 1
Чтобы вызвать функцию, связанную с Var myfn1
с учетом строки "myfn1"
, вы можете сделать что-то вроде этого:
((resolve (symbol "myfn1")) ...) ; ... indicates where to put any arguments
Итак, учитывая ваш примерный вектор и предполагая, что вам не нужно передавать какие-либо дополнительные аргументы в свои функции (достаточно, чтобы изменить этот код, если вы это сделаете), вы можете сделать следующее:
(map #((resolve (symbol %))) ["myfn1" "myfn2" "myfn3"])
например.
user=> (map #((resolve (symbol %1)) %2) ["println" "print" "prn"] ["asdf" "asdf" "asdf"])
(asdf
asdfnil "asdf"
nil nil)
(nil
- это возвращаемые значения из функций печати, обратите внимание на то, что нет строки после asdf
, созданной print
, и asdf
, вырабатываемый с помощью prn
.)