2012-10-29 96 views
4

一個初學者的問題。clojure命名空間.core文件和repl

使用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?我能不能只更改源文件/重新編譯它並使用它?

回答

4

荷載作用下CTRL-C CTRL-L的文件,然後你的REPL與任何

(in-ns 'learning.core) 

或按CTRL-C從Clojure的緩衝ALT-N切換到命名空間在該文件中的REPL切換到緩衝區的名稱空間。你可以通過查看repl中的提示來判斷它是否工作正常。

+0

只是fyi,「In-ns」不起作用。它必須是「in-ns」。 Clojure var名稱區分大小寫。 – rplevy

+0

在我的手機上自動大寫....固定 –