现在,conjure-contrib.jar没有标准化吗?

时间:2010-08-02 00:54:43

标签: clojure leiningen

This page引入了很多clojure库。此页面还考虑使用clojure-contrib。

  • 为什么clojure-contrib.jar的大小不同? leiningen的clojure-contrib-1.2.0-beta1.jar大小为479.2KB,但我从Programming Clojure下载的conjure-contrib.jar是2.9MB。正如我在here中解释的那样。 clojure-contrib.jar到目前为止还没有标准化吗?
  • the libs in the page应该成为clojure-contrib的一部分吗?如果是这样,为什么leiningen的clojure-contrib.jar没有str-utils或repl-utils?因此,我无法在emacs / slime中使用leiningen(lein swank)运行(使用'clojure.contrib.str-utils)。
  • the page中显示的 clojure.contrib.A 的含义是什么?据我所知,(使用'ab)让clojure找到CLASSPATH / A / B.clj加载并按照编程Clojure第18页中的解释进行引用。这是说/ clojure / contrib中的A clj文件目录或clojure-contrib.jar内?
  • 如何在the page
  • 下载,安装和设置库

更新leiningen后,我检查了(使用'clojure.contrib.str-utils)工作正常。但是,(使用'clojure.contrib.repl-utils)给出了以下错误。

  [Thrown class java.lang.IllegalStateException]

Restarts:
 0: [QUIT] Quit to the SLIME top level

Backtrace:
  0: clojure.lang.Namespace.warnOrFailOnReplace(Namespace.java:88)
  1: clojure.lang.Namespace.reference(Namespace.java:110)
  2: clojure.lang.Namespace.refer(Namespace.java:168)
  3: clojure.core$refer.doInvoke(core.clj:3288)
  4: clojure.lang.RestFn.invoke(RestFn.java:411)
  5: clojure.lang.AFn.applyToHelper(AFn.java:163)
  6: clojure.lang.RestFn.applyTo(RestFn.java:133)
  7: clojure.core$apply.invoke(core.clj:542)
  8: clojure.core$load_lib.doInvoke(core.clj:4781)
  9: clojure.lang.RestFn.applyTo(RestFn.java:143)
 --more--

(需要'clojure.contrib.repl-utils)工作,我可以使用(clojure.contrib.repl-utils / show#{}),但是(请参阅'clojure.contrib.repl-utils)给我一个错误。

还有一些问题。

  • 为什么(使用'..repl-utils)会导致错误,而str-utils却没有?两个库有什么区别?

2 个答案:

答案 0 :(得分:2)

我不确定你的标准化是什么意思,但是如果没有充分的理由,contrib不会做出倒退的改变。有些东西偶尔会转移到核心,如果它们足够重要 - 我似乎记得序列函数正在做这件事,而且很可能是你想到的字符串函数。

Re:Leiningen:刚出来的新版本。无论如何,听起来你可能有版本冲突。

关于类路径:许多令人不快的问题的根源,直到你习惯它(或者它适合我)。它可能是你提到的事情之一,鉴于上下文,我们几乎肯定在谈论clojure-contrib.jar。

要下载等,有各种方法。几乎在所有情况下,最简单的方法是将它们列为项目的project.clj文件中的依赖项。换句话说,使用leiningen。您也可以从clojars下载它们。或者你可以克隆他们的github repos,并单独编译它们,并将它们复制到项目的lib目录中。但严重的是,只需使用莱宁根。

答案 1 :(得分:1)

  1. clojure-contrib中的很多函数都进入了Clojure 1.2中的clojure核心。现在和1.1之间的差异与clojure.core的增长大致相同。

  2. 获取leiningen更新

  3. 不知道我只是使用leiningen

  4. 只需将其添加到leinigen中的project.clj

  5. 即可