2015-02-02 4 views
1

나는 Clojure를 배우고 있습니다. 재미 있습니다. 나는 동일한 파일에 주문 술사와 Clojure의 수프를 사용하는 것을 시도하고있다 :Incanter와 Clojure Soup를 함께 사용합니다.

(require '[jsoup.soup :as soup]) 
(use '(incanter core stats io charts datasets)) 

그리고 나는 다음과 같은 오류 얻을 :

CompilerException java.lang.IllegalStateException: $ already refers to: #'jsoup.soup/$ in namespace: user, compiling 

나는 이유를 이해 생각을하지만, 나는이 문제를 해결할 수있는 방법? 이 웹 사이트 및 모든 전문가들에게 감사드립니다!

감사합니다.

답변

3

당신은 실제로 당신이 다른 하나

(ns myproject.example 
    (:require [jsoup.soup :as soup] 
      [incanter [core :refer :all :exclude [$]] 
         [stats :refer :all] 
         [io :refer :all] 
         [charts :refer :all] 
         [datasets :refer :all]])) 

을 제외 할 수 있습니다 $ 기능 중 하나를 사용하거나 명시 적으로 당신이 당신의 네임 스페이스를 참조 할 바르 명명 명시 적으로 호출의 접근을 할 수있는 경우 더 같을 것이다 namespace-alias/function에 의해 다른 사람 : 다른 네임 스페이스를 사용하는 use 방법은 현대의 Clojure 코드에 낙담하고 참조 형식에 의해 포섭 된

(ns myproject.example 
    (:require [jsoup.soup :as soup] 
      [incanter [core :refer [$ ... and others here ...] 
          :as incanter] 
         [stats :as stats] 
         [io :as io] 
         [charts :as charts] 
         [datasets :as dataset]])) 

그래서 나는이 예제에서 그 형식을 사용한다. 또한 네임 스페이스 선언에 참조 양식을 넣는 것이 좋습니다.