2012-03-09 8 views
8

¿Hay alguna manera de devolver una función clojure como una cadena? Estoy haciendo algo de documentación en línea y me gustaría poder agregar código en el html evaluando de alguna manera una función en texto.cómo devolver una función clojure como una cadena

gracias

+0

posible duplicado de (http://stackoverflow.com/questions/ 9217911/can-get-the-code-as-data-of-a-loaded-function-in-clojure) –

+0

Creo que esta pregunta tiene un título más googleable que duplicado. –

+0

Es posible que desee considerar [marginalia] (https://github.com/fogus/marginalia) al menos para inspirarse, vea el [ejemplo de sitio de marginalia] (http://fogus.me/fun/marginalia/) para una ejemplo de cómo se ve el resultado –

Respuesta

6

echar un vistazo a la función source-fn del clojure.repl espacio de nombres:

Uso: (fuente-fn x)

Devuelve una cadena del código fuente para el símbolo dado , si puede encuéntrelo. Esto requiere que el símbolo se resuelva en un Var definido en un espacio de nombre para el cual .clj está en la ruta de clase. Devuelve nil si no puede encontrar la fuente. Para la mayoría del uso de REPL, 'fuente' es más conveniente.

Ejemplo: [? ¿Puede obtener el "código como datos" de una función cargada en Clojure] (fuente-fn 'filtro)

+0

Muchas gracias. (fuente) era exactamente lo que necesitaba! Parece obvio ahora, por supuesto;) –

+0

es broma, la fuente utiliza print donde, como source-fn, devuelve la cadena que necesitaba. gracias de nuevo –

Cuestiones relacionadas