一起使用 Incanter 和 Clojure Soup
Using Incanter and Clojure Soup together
我正在学习 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
我想我明白为什么了,但是我该如何解决这个问题呢?感谢这个网站和上面的所有专家!
谢谢。
如果您实际上只使用了一个 $
函数,那么您可以排除另一个
(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
显式调用其他变量的方法,这看起来更像这样:
(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]]))
在现代 clojure 代码中不鼓励使用其他命名空间的 use
方法,并且已包含在 refer 形式中,因此我在这些示例中使用该形式。强烈建议将引用形式放在命名空间声明中。
我正在学习 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
我想我明白为什么了,但是我该如何解决这个问题呢?感谢这个网站和上面的所有专家!
谢谢。
如果您实际上只使用了一个 $
函数,那么您可以排除另一个
(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
显式调用其他变量的方法,这看起来更像这样:
(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]]))
在现代 clojure 代码中不鼓励使用其他命名空间的 use
方法,并且已包含在 refer 形式中,因此我在这些示例中使用该形式。强烈建议将引用形式放在命名空间声明中。