2012-03-09 2 views
8

есть ли способ вернуть функцию clojure в виде строки? Я делаю некоторую онлайн-документацию, и мне бы очень хотелось иметь возможность добавлять код в html, как-то оценивая функцию в тексте.как вернуть функцию clojure в виде строки

благодаря

+0

возможно дубликат (http://stackoverflow.com/questions/ 9217911/can-you-get-the-code-as-data-of-a-load-function-in-clojure) –

+0

Я думаю, что этот вопрос имеет более googleable заголовок, чем его дубликат. –

+0

Возможно, вы захотите рассмотреть [marginalia] (https://github.com/fogus/marginalia), по крайней мере, для вдохновения, см. [Пример сайта marginalia] (http://fogus.me/fun/marginalia/) для пример того, как выглядит вывод. –

ответ

6

Взгляните на source-fn функции из clojure.repl имен:

Использование: (источник-п х)

Возвращает строку исходного кода для данного символа , если он может найти его. Для этого требуется, чтобы символ был разрешен для Var, определенного в пространстве имен , для которого .clj находится в пути к классам. Возвращает ноль, если он не может найти источник. Для большинства использования REPL 'source' является более удобным.

Пример: [? Можете ли вы получить „код как данные“ нагруженной функции в Clojure] (источник-ф «фильтр)

+0

Большое спасибо. (источник) было именно то, что мне нужно! Кажется очевидным теперь, конечно;) –

+0

просто шутит, источник использует print, где в качестве источника-fn возвращается строка, в которой я нуждался. еще раз спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^