【发布时间】:2016-09-02 20:44:02
【问题描述】:
我定义了一个不带参数的 clojure 函数。
例子
(defn m
[]
...)
如何在光表中执行此功能..
(m) 或(m nil) 或无论如何。
使用(m) 和(m nil) 我没有得到任何输出
【问题讨论】:
-
分享实际功能,您可能会更清楚为什么看不到任何输出。
标签: clojure lighttable
我定义了一个不带参数的 clojure 函数。
例子
(defn m
[]
...)
如何在光表中执行此功能..
(m) 或(m nil) 或无论如何。
使用(m) 和(m nil) 我没有得到任何输出
【问题讨论】:
标签: clojure lighttable
要运行不带参数的函数,调用如下所示:
(m)
如果您添加了一个 nil,它将调用一个带有一个参数的函数,并且该参数的值将是 nil。如果您没有看到输出,那是因为您的函数没有产生任何输出。由于您使用的是 light table,请确保调用位于顶层,而不是在另一个函数定义中(重新计算 ()s)
【讨论】:
让 LightTable 执行 Clojure 有两种模式:
.clj 文件中,Ctrl+Enter 评估当前上下文,然后
Ctrl+Shift+Enter 评估整个文件。 在任何一种情况下,您都会看到表达式的计算结果:所有 clojure 表达式计算结果(如果它们不抛出异常,也会显示)。
所以我认为您正在使用模式 (2),没有评估表达式。
话虽如此,如果你输入足够多的废话,LightTable 可能会放弃它。
如果我是对的,你很快就会知道如何调用不带参数的函数。
【讨论】:
要运行该函数,您首先需要评估函数定义 - 将光标放在函数定义的任何行上按 Ctrl+Enter。然后你应该能够使用调用你的函数的代码来评估一行,即(m)。
当您评估 Clojure 代码时,Light Table 需要连接到您的代码的 Leiningen 项目(如果有的话),如果没有,它可能会连接到“LightTable-REPL”,或者您可以告诉它连接到改为“Light Table UI”(如果您想在 LT 内部使用 Light Tables 的代码)。
您的函数也可能没有返回值,例如它只调用其他旨在产生副作用但没有有用返回值的函数(例如print)。但即使在这种情况下,当您评估包含函数调用的行时,您也应该在 Clojure 文件中看到打印的 nil。
如果您仍然遇到问题,请随时 在the Light Table Gitter room、the Google Groups group 寻求帮助,或者,如果你认为你发现了一个错误,open an issue on GitHub。
【讨论】: