我在REPL中定义了一个函数。功能很好,一切都很好。但我的REPL窗口很小,在锻炼了我的功能一段时间之后我想看看源代码。有一个源功能,很棒。但是等等......
(defn print-seq [s]
(when (seq s)
(prn (first s))
(recur (rest s))))
=> #'user/print-seq
(source user/print-seq)
Source not found
=> nil
这里出了什么问题? (source source)
工作正常,因此我不能执行源代码。有些东西我不能来这里。请解释一下。
答案 0 :(得分:2)
如果找到符号,则打印给定符号的源代码。 这要求符号解析为a中定义的Var .clj在类路径中的名称空间。
REPL中定义的函数在类路径中没有关联的.clj
文件。
如果您想验证这一点,请考虑阅读(source 'source-fn)
的输出;从表面上看,当且仅当源路径中有 .clj 文件时,此功能才有效。