en clojure tengo vector [ "myfn1" "myfn2" "myfn3"] ¿Cómo puedo llamar a funciones con nombre "myfn1" ... utilizando cuerdas de ese vectorclojure cadena de conversión de tipo de símbolo
12
A
Respuesta
14
Para llamar a un función obligado a Var myfn1
dada la cadena "myfn1"
, que podría hacer algo como esto:
((resolve (symbol "myfn1")) ...) ; ... indicates where to put any arguments
Por lo tanto, dada su ejemplo del vector y suponiendo que no es necesario pasar ningún argumento adicional a sus funciones (que es lo suficientemente lisa y llana para modificar este código si lo hace), podría hacer lo siguiente:
(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)
(Los nil
s son los valores de retorno de las funciones de impresión, tenga en cuenta la forma en que no hay salto de línea después de la asdf
producido por print
y la asdf
produce por prn
se cita.)
Cuestiones relacionadas
- 1. Tipo de filtro Cadena en Clojure
- 2. Clojure error de evaluación símbolo
- 3. Conversión de tipo genérico FROM cadena
- 4. Clojure: Conversión de archivo Clojure a YAML
- 5. Conversión de tipo de int y la cadena, java
- 6. Conversión de TextView a cadena (tipo de) Android
- 7. Clojure caret como un símbolo?
- 8. Conversión de tipo genérico
- 9. Conversión de tipo Groovy
- 10. Conversión de un JToken (o cadena) a un determinado tipo
- 11. cadena matriz de conversión
- 12. Símbolo para problema de cadena
- 13. Preferencia de conversión del tipo de PHP
- 14. Redefinición de un tipo diferente de símbolo
- 15. ¿El nombre de símbolo de Lisp común en Clojure?
- 16. Java Generics tipo conversión de rompecabezas
- 17. Tipo de conversión general clase
- 18. cadena ambiguo :: = operador de llamada para el tipo de conversión implícita a int y la cadena
- 19. conversión de Ada cadena de C Void *
- 20. ¿Cómo realizo la Conversión de tipos en Clojure?
- 21. conversión de cadena estrecha a cadena ancha
- 22. Java: inetaddress a la conversión de cadena
- 23. Conversión de cadena a entero
- 24. Conversión de entero en cadena
- 25. conversión de cadena a numérico
- 26. ¿Cómo se construye un símbolo en clojure?
- 27. Conversión de tipo general sin riesgo Excepciones
- 28. ¿Qué sucede cuando paso argumentos a un símbolo de Clojure?
- 29. "No sabe cómo crear ISEQ de: Símbolo" error en Clojure
- 30. no se puede convertir el tipo 'cadena' a 'int?' a través de una conversión de referencia, la conversión de boxeo, la conversión unboxing, la conversión de envolver o de conversión de tipo nulo