clojure名称空间.core文件和repl

时间:2012-10-29 00:03:15

标签: clojure namespaces

初学者问题。

使用lein + emacs + nrepl运行clojure。

我对以下内容感到有些困惑:

我希望使用指数函数。此功能位于以下位置clojure.math.numeric-tower。我将[org.clojure/math.numeric-tower "0.0.1"]添加到依赖项并运行lein deps

现在可以(我确信有可能)将其添加到我的.core ns,如下所示:

(ns learning.core
  (:require [clojure.math.numeric-tower :as math]))

(def i-know-the-answer
  (math/expt 2 10))

现在当我尝试将这个(ctl-x e)加载到REPL中时,它会抛出错误。

clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: No such namespace: math, compiling:(NO_SOURCE_PATH:2)

是否需要直接将依赖项加载到REPL中?我不仅可以更改源文件/重新编译它并使用它吗?

1 个答案:

答案 0 :(得分:4)

使用ctrl-c ctrl-l加载文件然后使用

将repl切换到该文件中的命名空间
(in-ns 'learning.core)

或者从Clojure缓冲区中点击ctrl-c alt-n将repl切换到缓冲区的命名空间。您可以通过查看repl中的提示来判断它是否有效。