如何将Clojure函数转换为字符串返回

9
有没有办法将clojure函数转换成字符串返回?我正在制作一些在线文档,希望能够通过某种方式将函数中的代码转换成文本,并添加到html文档中。
谢谢。

可能是Can you get the "code as data" of a loaded function in Clojure?的重复问题。 - Arthur Ulfeldt
我认为这个问题的标题比它的重复问题更容易在谷歌上搜索到。 - Arthur Ulfeldt
你可能想考虑使用marginalia作为灵感,可以查看示例marginalia网站了解输出效果。 - Alex Stoddard
我在谷歌上搜索答案时遇到的问题是,我找到的所有内容都是关于字面上返回字符串而不是将函数代码作为字符串返回的。 - Jon Rose
1个回答

6

请查看source-fn函数,它来自clojure.repl命名空间:

用法:(source-fn x)

如果可以找到给定符号的源代码,则返回一个字符串。这需要该符号解析为在类路径中的.clj所定义的名称空间中定义的变量。如果找不到源,则返回nil。对于大多数REPL用法,“source”更方便。

示例:(source-fn 'filter)


非常感谢,(来源)正是我所需要的!现在当然显而易见了 ;) - Jon Rose
开个玩笑,源代码中使用的是“print”,而源代码函数返回了我需要的字符串。再次感谢! - Jon Rose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接