在 Eclipse(Counterclockwise)中运行 Clojure

4
我正在使用Eclipse(逆时针插件)学习Clojure。
  • 当我在Eclipse中点击“运行”(就像Java一样),不仅会打开控制台,还会打开这个“REPL”窗口。为什么需要它,它是做什么的?
  • 当我点击“运行”时,启动应用程序需要相当长的时间。有没有办法让它更快?
  • 当我需要编辑代码并重新启动(运行)应用程序时,我会收到此消息:“无法启动选择,也没有最近的启动”。那是什么原因,并且为什么不让我重新启动我的代码?如果我稍等一会儿,我就可以再次启动它。

这是我试图运行的简单代码:

(ns ClojureTest.core)

(let [input (read-line)]
  (if (= "x" input)
    (do
      (println "Exit")
      (System/exit 0)
    )
    (do
      (println input)
      (recur)
    )
  )
)
更新: 我搞砸了事情变得更糟。现在当我点击“运行”时,控制台会忽略任何输入,就像应用程序根本没有在运行一样... 更新2: 我重新启动了eclipse,之前的问题得到了解决。现在我可以再次在控制台中运行应用程序了。我不知道发生了什么。我唯一能看到的区别是,当我弄乱它时 - REPL窗口的标题看起来像这样:
REPL @ nrepl://127.0.0.1:60429 (user)

在重启eclipse后,它回到了这个状态:
REPL @ nrepl://127.0.0.1:60001 (ClojureTest.core)

我不知道这是什么意思。

1个回答

2
你只需要为每个项目打开一个REPL。一旦打开,您可以通过从Clojure菜单中选择现有文件(命名空间)来评估更改的代码。然后根据您的选择将选择或整个文件发送到REPL以进行评估。您可以通过从REPL调用函数立即尝试更改。这称为交互式开发。在尝试更改之前,无需重新编译整个项目。CCW的开发人员只选择了“为现有项目打开REPL”的“运行”按钮操作。在开发过程中,请仅使用一次并不要反复按下该按钮。

谢谢你的回答,我也有类似的想法,但是这让我感到非常困惑。我需要清除控制台并重新启动应用程序 - 我已经尝试了Clojure菜单中的每个选项 - 但似乎没有一个能够做到这一点。 - Caballero
我承认这可能会令人困惑。如果您不想遇到意外,最好只使用Clojure菜单。 - Michiel Borkent
因此,每次我编辑代码时都需要重新启动REPL。我不明白有人怎么能在这种语言中开发。Clojure菜单中没有任何东西可以帮助解决这个问题。 - Caballero
这恰恰与我在答案中所说的相反。你只需提交更改到REPL,而不是重新启动任何东西。这是Clojure和其他需要单块编辑/编译/运行循环的语言之间的主要区别。在Clojure中,你可以在运行时重新定义几乎所有内容。 - Michiel Borkent
上面的代码片段 - 我可以随意编辑它 - 除非我重新启动REPL,否则不会发生任何变化。那么重新评估是如何工作的呢? - Caballero
显示剩余7条评论

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