首页 文章

Clojure Cursive noob加载到repl并且无法运行hello world

提问于
浏览
1

探索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 回答

  • 0

    在下一版本的Cursive中,这将更加容易 - EAP有望在本周晚些时候或下周发布 . 您可以更轻松地使用IntelliJ标准的方式运行 -main 函数:
    enter image description here

    当然,Clojure Way就是在你发现时使用REPL,所以继续探索这种编程方式绝对值得鼓励!

相关问题