1

在 Clojure 中,如果我想引入 clojure.inspector 函数,我可以这样:

(use `[clojure.math.numeric-tower :include (expt)])

从 REPL,我现在可以评估函数 expt。

但是,在我看来,应该(并且可能是)另一种方法来做到这一点 - 使用 Leiningen 依赖项拉入代码。

我将此行添加到我的 project.clj 中:

[org.clojure/math.numeric-tower "0.0.2"]

然后我重新启动 REPL 以引入新的依赖项。为了安全起见,我什至做了“lein deps”(该命令没有输出)。当我尝试评估 expt 时,它给了我一个 RuntimeException,并说它无法解析符号。

如何仅使用 Leiningen 依赖项访问 expt 函数?

4

1 回答 1

3

你不能。它不是那样工作的。添加依赖项会将代码放在您的classpath上,这仅意味着它可供您使用。为了实际使用命名空间内的东西,您需要使用

(require '[the-namespace :refer [the things you want to use]])

或者

(require '[the-namespace :as tn])
(tn/somevar)

或者在 ns 声明中做这些事情中的任何一个(当不在 REPL 中并使用文件时)

(ns foo
  (:require [the-namespace :as tn]))
于 2012-12-31T21:16:23.610 回答