【问题标题】:Clojure Cursive noob load into repl and cannot run hello worldClojure Cursive noob 加载到 repl 并且无法运行 hello world
【发布时间】:2017-06-11 15:42:05
【问题描述】:

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

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

  1. 如 Cursive 网站上所示设置一个 repl “runner”。
  2. 尝试将 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

在下部窗格中,每个 cmets,我尝试了两种运行方式,两种方式都失败了,如下所示(我并不惊讶第二次失败,因为它正在调用 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 的cmets,我能够弄清楚该怎么做。答案是:

  1. 在下方窗格中输入 (clojure-noob.core/-main)
  2. 将光标定位到右括号的右侧
  3. 按回车键。

结果如下:

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

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

【问题讨论】:

  • 不是您要寻找的答案,但对于 IDE,我强烈推荐 IntelliJ + Cursive。这太棒了,而且免费。使用该组合已有一年多了。
  • 加载后手动运行-main。 main 不一定会自动运行。
  • 我认为我的 cmets 很清楚我正在运行 Cursive。 :-( 我正在编辑我的问题以显示我理解你的意思的结果。但是,也许我做错了什么。
  • 您正在使用 Cursive,但它与 emacs 的集成可能很差。我只是想我会推荐 IntelliJ,因为我在这方面有很好的经验。
  • 在 REPL 中,你是否运行过 (-main)

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


【解决方案1】:

在下一版本的 Cursive 中,这将变得更加容易 - EAP 有望在本周晚些时候或下周推出。您将拥有运行 -main 函数的 IntelliJ 标准方式,更易于访问:

当然,Clojure 方式是按照您的发现使用 REPL,因此继续探索这种编程方式绝对值得鼓励!

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    相关资源
    最近更新 更多