如何在没有参数的情况下执行 clojure 函数

How to execute clojure function with no arguments

我定义了一个不带参数的 clojure 函数。

例子

(defn m
[]
...)

如何在灯光下执行此功能 table..

(m)(m nil) 或无论如何。

使用 (m)(m nil) 我没有得到任何输出

到运行一个没有参数的函数调用看起来像这样:

(m)

如果您添加了一个 nil,它将调用一个带有一个参数的函数,并且该参数的值为 nil。如果您没有看到输出,那是因为您的函数没有产生任何输出。由于您使用的是 light table,因此请确保调用在顶层而不是在另一个函数定义中(重新计算 ()s)

让LightTable执行Clojure有两种方式:

  1. 在 instarepl 中,您键入的所有内容都会立即得到评估。
  2. .clj 文件中,Ctrl+Enter 计算当前上下文,并且 Ctrl+Shift+Enter 计算整个文件。

在任何一种情况下,您都会看到表达式的计算结果:所有 clojure 表达式的计算结果(如果它们不抛出异常,也显示)。

所以我认为您正在使用模式 (2),而没有计算表达式

话虽如此,如果你输入的废话够多,LightTable可能会放弃。

如果我是对的,您很快就会知道如何调用不带参数的函数。

到运行你首先需要计算函数定义的函数——点击Ctrl+Enter并将光标放在函数定义的任何行。然后你应该能够评估一行调用你的函数的代码,即 (m).

当您评估 Clojure 代码时,Light Table 需要连接到您代码的 Leiningen 项目(如果有),如果没有,它可能会连接到 "LightTable-REPL",或者您可以告诉它改为连接到 "Light Table UI"(如果你想在 LT 本身内部使用 Light Tables 的代码)。

也有可能您的函数没有 return 值,例如它只调用其他函数(例如 print),这些函数旨在产生副作用而不是有用的 return值。但即使在那种情况下,当您评估包含函数调用的行时,您应该会在 Clojure 文件中看到 nil

如果您仍有问题,请随时 在 the Light Table Gitter room, the Google Groups group, or, if you think you've found a bug, open an issue on GitHub.

寻求帮助