3

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の異なる名前空間を参照できるようにするには、何を変更すればよいですか?

4

1 に答える 1

3

require関数aliasを内部的に使用して、必要なことを実行します。

(ns b1)
(alias 'a 'a1)
于 2012-11-25T01:42:07.067 に答える