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

时间:2017-06-11 15:42:05

标签: clojure read-eval-print-loop cursive

探索Clojure - 我正在通过 Clojure为勇敢而真实的工作。我创造了你好的世界(在这种情况下,我是一个小茶壶)。正如书中暗示的那样,我可以从lein repl运行它。

这本书的作者似乎是一个很大的emacs粉丝。我对 Intellij Idea 感到满意,因此安装了 Cursive 插件。然后我:

  1. 设置一个repl“runner”,如Cursive网站所示。
  2. 尝试将hello world加载到repl中。它似乎已经完成了 如此。
  3. 现在怎样?我假设在加载编辑器的内容后,我可以运行它,但还没弄明白怎么做。显然,这是一个非常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的评论,我能够弄明白该怎么做。答案是:

    1. 在下方窗格中输入(clojure-noob.core / -main)
    2. 将光标定位在关闭窗口
    3. 的右侧
    4. 按enter键。
    5. 这导致以下结果:

      (clojure-noob.core/-main)
      I'm a little teapot!
      => nil
      

      告诉你这是一个菜鸟问题!

1 个答案:

答案 0 :(得分:0)

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

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