探索Clojure - 我正在为勇敢和真实的Clojure工作 . 我创造了你好的世界(在这种情况下,我是一个小茶壶) . 正如书中暗示的那样,我可以从lein repl运行它 .
这本书的作者似乎是一个很大的emacs粉丝 . 我很满意 Intellij Idea ,所以安装了 Cursive 插件 . 然后我:
-
设置一个repl "runner",如Cursive网站上所示 .
-
尝试将hello world加载到repl中 . 它似乎已经这样做了 .
怎么办?我假设在加载编辑器的内容后,我可以运行它,但还没弄明白怎么做 . 显然,这是一个非常noob的问题 .
我的编辑器中的代码如下 .
(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 -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"]
ANSWER 感谢@Carcigenicate的评论,我能够弄明白该怎么做 . 答案是:
-
在下方窗格中输入(clojure-noob.core / -main)
-
将光标定位在关闭窗口的右侧
-
按enter键 .
这导致以下结果:
(clojure-noob.core/-main)
I'm a little teapot!
=> nil
告诉你这是一个菜鸟问题!
1 回答
在下一版本的Cursive中,这将更加容易 - EAP有望在本周晚些时候或下周发布 . 您可以更轻松地使用IntelliJ标准的方式运行
-main
函数:当然,Clojure Way就是在你发现时使用REPL,所以继续探索这种编程方式绝对值得鼓励!