我在学克洛尔--这很有趣!我试图在同一个文件中使用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我想我明白为什么,但我如何解决这个问题呢?感谢这个网站和所有的大师在它!
谢谢。
发布于 2015-02-02 07:53:54
如果您只实际使用其中一个$函数,则可以排除另一个函数。
(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]]))或者您也可以采用显式命名您想要在您的命名空间中引用的vars的方法,并通过namespace-alias/function显式地调用其他的vars,它看起来更像这样:
(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]]))使用其他名称空间的use方法在现代clojure代码中是不允许的,并且已经包含在refer表单中,因此我在这些示例中使用该表单。还强烈鼓励将引用表单放在命名空间声明中。
https://stackoverflow.com/questions/28271008
复制相似问题