clojure - 在 LightTable 中运行 leiningen Clojure 项目

标签 clojure lighttable

我正在尝试使用 Clojure 运行我的 Leiningen 项目。尽管 LightTable 说它在连接 Pane 中已连接,但除非我手动调用 main 函数,否则它不会执行。
project.clj:

(defproject lein-test "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]]
  :main lein-test.core)
core.clj:
(ns lein-test.core)

(defn -main [& args]
  (println "asdf"))

当我使用 ctrl+shift+enter 评估整个文件时,我看到 nilns控制台中没有任何内容。如果我添加
(-main)

然后控制台显示“asdf”。 lein run在命令提示符下会产生预期的行为。我错过了什么?

最佳答案

Control+Shift+Enter 评估命名空间。

评估命名空间不应运行其任何函数,除非您在顶层调用它们。在给定的代码库中,理想情况下应该只有一个在顶层调用的函数(通常是 -main 函数),并且不应该通过在命名空间代码中调用它来设置它,而是通过配置来设置它.

一切都在这里按预期工作。为了方便开发,您可以在注释 block 或文件的临时部分中调用 (-main),或直接从 repl 接口(interface)调用它。

关于clojure - 在 LightTable 中运行 leiningen Clojure 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226346/

相关文章:

clojure - 从 Clojure 中的嵌套结构中获取的惯用方法

javascript - 如何在 Light Tables 中使用 javascript 提示用户输入?

css - 增加 LightTable (Juno) 中控制台窗口的大小

clojure - 如何在 Light Table 中自动智能缩进文件

clojure - 将变量列表单独传递给 clojure 函数

oauth - clojure oauth 和凭据

clojure - 关闭 Light Table 中的自动完成功能

clojure - 无法使基本的 Lightable 功能正常工作

java - 没有 Java 的 Android

clojure - 是否可以使用 clojure.core.reducers 实现 "partition"函数?