In clojure 1.2RC1, desidero ottenere una funzione in base al suo nome come stringa e valutarla.funzione di risoluzione del clojure da nome stringa
definizione della funzione
(ns my-ns)
(defn mycar [x] (first x))
Il seguente lavorato:
((ns-resolve *ns* (symbol "mycar")) '(3 4))
((intern *ns* (symbol "mycar")) '(3 4))
((eval (symbol "mycar")) '(3 4))
ma sembrano brutti. C'è un modo migliore? Se no, quale di questi è il più idiomatico?
I secondo l'uso di 'resolve' o' ns-resolve'. Prestare inoltre molta attenzione quando si usa 'intern'. È abbastanza per ingannare le cose che lo usano. – kotarak
Eventuali puntatori a ulteriori informazioni su "clobbering" causati da stagisti? – chris
Imposta un Var con intern e i tuoi meta data originali sul Var saranno spariti.Ignora. Sembra essere risolto. Almeno non riesco più a riprodurlo. – kotarak