2012-12-31 55 views
1

在Clojure中,如果我想在clojure.inspector功能來拉,我可以是這樣的:爲什麼我不能使用Clojure代碼訪問我的Leiningen依賴項?

(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,並說它無法解析該符號。

如何訪問expt函數,僅使用Leiningen依賴關係?

回答

3

你不能。它不這樣工作。添加依賴關係會將代碼放在類路徑上,這僅表示它可供您使用。爲了實際使用的命名空間裏面的東西,你需要使用

(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])) 
+0

Gotcha。非常感謝。 –

相關問題