2010-03-09 8 views

Antwort

14

unter Verwendung eines zu nennen, Funktion Var myfn1 die Zeichenfolge "myfn1", könnte man so etwas tun gegeben gebunden:

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

So, da Ihr Beispiel Vektor und unter der Annahme, dass Sie keine zusätzlichen Argumente auf Ihre Funktionen übergeben müssen (es straighforward ist genug Wenn Sie diesen Code ändern möchten, könnten Sie Folgendes tun:

(map #((resolve (symbol %))) ["myfn1" "myfn2" "myfn3"]) 

z.

user=> (map #((resolve (symbol %1)) %2) ["println" "print" "prn"] ["asdf" "asdf" "asdf"]) 
(asdf 
asdfnil "asdf" 
nil nil) 

(Die nil s sind die Rückgabewerte von den Druckfunktionen, beachten Sie, wie es keine Zeilenumbrüche ist nach dem asdf von print hergestellt und die asdf produziert von prn zitiert.)