(来源)在Clojure给予"未找到"对于REPL定义的函数

时间:2015-12-28 21:45:39

标签: clojure

我在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)工作正常,因此我不能执行源代码。有些东西我不能来这里。请解释一下。

1 个答案:

答案 0 :(得分:2)

引用the documentation

  

如果找到符号,则打印给定符号的源代码。   这要求符号解析为a中定义的Var   .clj在类路径中的名称空间

REPL中定义的函数在类路径中没有关联的.clj文件。

如果您想验证这一点,请考虑阅读(source 'source-fn)的输出;从表面上看,当且仅当源路径中有 .clj 文件时,此功能才有效。