请分享您的想法,参加2024年Clojure状态调查!

欢迎!请查看关于页面,了解更多关于这个网站是如何工作的信息。

0
REPL

在#nrepl中提出了关于如何看到load-file所评估的所有内容的问题。我的想法是启动一个子repl,使用自定义的eval,在那里加载文件,然后返回。我很惊讶load-file没有使用repl的eval,但我不确定是否应该有这样的期望。

(clojure.main/repl
 :eval (fn [form]
         (prn "i could do something to: " form)
         (eval form))
 :read server/repl-read)

(load-file "stuff.clj")
"i could do something to: " (load-file "stuff.clj") ;; sees the load-file form
#'stuff/foo       ;; but not any of the forms in stuff.clj

我天真地期望能从所加载的文件中获得所有形式,但这似乎并不成立。load-file应该使用当前repl的eval函数吗?

1 答案

+2

选中
 
最佳答案

当前repl的eval函数用于eval repl读取的内容,而不是运行时中所有的eval'ing内容。所以,这个不是你应该有的期望。

...