2012-01-19 48 views
1

運行「使用」時,失蹤的命名空間錯誤,我有開始這樣的.clj文件:Clojure的:在REPL

(ns clojure_crawl.core) 
(require '[clj-http.client :as client]) 
(use 'clojure.contrib.json) 

由幾個函數定義:

(defn f1 [] "" (+ 1 1)) 

(defn f2 [] "" (+ 2 2)) 

等。 。

然而,當我運行命令 「(使用「myfile.core:重裝)」

我的一些功能,ALT可以在REPL中看到,無法運行「缺少名稱空間」錯誤。

如何添加的依賴關係,使得REPL可以運行任何在我的文件中定義的功能呢?

回答

5

如果你的代碼是在 「clojure_crawl/core.clj」,其命名空間應該是Clojure的-crawl.core(注意連字符)。請參閱http://clojure.org/libs

3

正如Joost所說的,您必須小心連字符和下劃線:無論您在名稱空間名稱中使用連字符,在相應的文件/目錄名稱中用下劃線替換它(反之亦然)。

另外,不鼓勵在clj源文件中使用requireuse函數。相反,聲明需要直接在ns宏庫:

(ns clojure-crawl.core 
    (:require [clj-http.client :as client]) 
    (:use clojure.contrib.json)) 

這也需要適當地從你引用必需的命名空間的負擔。