可重新加载Clojure REPL

可重新加载Clojure REPL,clojure,read-eval-print-loop,Clojure,Read Eval Print Loop,如何为Clojure创建可重新加载代码的REPL 我可以创建一个新项目,并启动并运行REPL: lein new app stack cd stack lein repl (-main) 做以上这些应该会让你“你好,世界!” 我想留在REPL中,将代码更改为println“你好伙伴!”,然后再次执行(-main)。无论是自动重新加载还是(也许更好)简单的手动重新加载(例如使用类似(r))的命令),都会使环境变得完整 似乎对于lein,我已经进入了正确的名称空间(除了用户名称空间之外的任何名称

如何为Clojure创建可重新加载代码的REPL

我可以创建一个新项目,并启动并运行REPL:

lein new app stack 
cd stack
lein repl
(-main)
做以上这些应该会让你“你好,世界!”

我想留在REPL中,将代码更改为
println
“你好伙伴!”,然后再次执行
(-main)
。无论是自动重新加载还是(也许更好)简单的手动重新加载(例如使用类似
(r)
)的命令),都会使环境变得完整

似乎对于lein,我已经进入了正确的名称空间(除了用户名称空间之外的任何名称空间,然后您必须从中
(在ns的某些ns中)
才是正确的名称空间!)。唯一未回答的部分是代码重新加载-手动或自动


碰巧的是,我之前问过如何使用

对于手动重新加载,您可以使用与引导答案中所述相同的技巧,即具有为您重新加载的功能:

(defn r [] (require 'stack.core :reload)) 
一旦上述函数成为
stack.core
命名空间的一部分,就可以从REPL调用它。非常简单-名称空间
stack.core
中有一个重新加载自身的函数

从编辑器中更改代码,使用
(r)
重新加载,然后再次运行

还有自动重新加载的插件