2012-11-25 53 views
3

假設我要像做在REPL以下聲明的命名空間:Clojure的 - 要求是在REPL

(ns a1) 

(defn adder [a b] 
    (+ a b)) 

(ns b1 
    (:require [a1 :as a])) 

(println (a/adder 1 2)) 

如果代碼中的文件按照聲明的名稱空間中定義這工作得很好。 - 但是,如果我們在REPL做那麼我們在這條線得到一個錯誤:

(ns b1 
    (require [a1 :as a])) 

錯誤時正在:

FileNotFoundException Could not locate a1__init.class or a1.clj on classpath: 
clojure.lang.RT.load (RT.java:432) 

現在我知道我可以明確地把全命名空間的名稱在:

(println (a1/adder 1 2)) 

但我想縮寫我的命名空間。 (如果我的名字空間是20個字符或更長)。

我該如何更改以確保能夠以縮寫方式引用repl上的不同名稱空間?

回答

3

require使用功能alias內部做你想做什麼:

(ns b1) 
(alias 'a 'a1) 
+0

那岩石。謝謝。 – hawkeye