2012-03-09 10 views
8

esiste un modo per restituire una funzione clojure come stringa? Sto facendo un po 'di documentazione online e mi piacerebbe davvero poter aggiungere codice nell'html valutando in qualche modo una funzione nel testo.come restituire una funzione clojure come stringa

grazie

+0

possibile duplicato (http://stackoverflow.com/questions/ 9217911/can-you-get-the-code-come-data-of-a-loaded-function-in-clojure) –

+0

Penso che questa domanda abbia un titolo più googleable di quanto non sia duplicato. –

+0

Si potrebbe prendere in considerazione [marginalia] (https://github.com/fogus/marginalia) almeno per ispirazione, si veda [esempio sito marginalia] (http://fogus.me/fun/marginalia/) per un esempio di come appare l'output. –

risposta

6

Date un'occhiata alla funzione source-fn dal clojure.repl namespace:

Usage: (fonte-fn x)

Restituisce una stringa di codice sorgente per il simbolo raffigurato , se può trovarlo . Ciò richiede che il simbolo risolva in un Var definito in uno spazio dei nomi per il quale il .clj si trova nel classpath. Restituisce zero se è impossibile trovare la fonte. Per la maggior parte dell'uso REPL, 'source' è più conveniente .

Esempio: [? Si può ottenere il "codice come dati" di una funzione caricato in Clojure] (fonte-fn 'filtro)

+0

Grazie mille. (fonte) era esattamente quello di cui avevo bisogno! Sembra ovvio ora ovviamente;) –

+0

sto scherzando, la fonte usa la stampa dove source-fn restituisce la stringa di cui avevo bisogno. grazie ancora –

Problemi correlati