探索 Clojure - 我正在通过Clojure For The Brave And True工作。我创建了 hello world(在这种情况下,我是一个小茶壶)。正如书中建议的那样,我可以从 lein repl 运行它。
这本书的作者似乎是 emacs 的忠实粉丝。我对Intellij Idea很满意,所以安装了Cursive插件。我然后:
- 设置一个 repl “runner”,如 Cursive 站点上所示。
- 尝试将 hello world 加载到 repl 中。它似乎已经这样做了。
怎么办?我想在加载编辑器的内容后,我可以运行它,但还没有弄清楚如何。显然,这是一个非常菜鸟的问题。
我的编辑器中的代码如下。
(ns clojure-noob.core
(:gen-class))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "I'm a little teapot!")
)
repl 窗口分为两个窗格。上面的痛苦表明它已连接到本地 nREPL 服务器。然后,加载后它指出:
Loading src/clojure_noob/core.clj... done
在下部窗格中,根据评论,我尝试了 run 的两种变体,正如您在下面看到的那样,这两种变体都失败了(我并不惊讶第二次失败,因为它调用的是run,而不是函数)。
run -main
CompilerException java.lang.RuntimeException: Unable to resolve symbol: run in this context, compiling:(/tmp/form-init2302589649746976452.clj:1:4481)
=> #object[clojure_noob.core$_main 0x24d21d67 "clojure_noob.core$_main@24d21d67"]
run clojure-noob.core/-main
CompilerException java.lang.RuntimeException: Unable to resolve symbol: run in this context, compiling:(/tmp/form-init2302589649746976452.clj:1:4481)
=> #object[clojure_noob.core$_main 0x24d21d67 "clojure_noob.core$_main@24d21d67"]
回答 感谢@Carcigenicate 的评论,我能够弄清楚该怎么做。答案是:
- 在下方窗格中输入 (clojure-noob.core/-main)
- 将光标定位到右括号的右侧
- 按回车。
这导致了以下结果:
(clojure-noob.core/-main)
I'm a little teapot!
=> nil
告诉你这是一个菜鸟问题!