【发布时间】:2011-03-23 23:57:09
【问题描述】:
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并按照Programming Clojure书第18页中的说明进行引用。这是说/clojure/contrib中的A clj文件目录还是在 clojure-contrib.jar 中?
- 如何在the page 中下载、安装和设置库?
添加
更新 leiningen 后,我检查 (use 'clojure.contrib.str-utils) 工作正常。但是,(使用'clojure.contrib.repl-utils)给了我以下错误。
[抛出的类 java.lang.IllegalStateException] 重启: 0: [QUIT] 退出 SLIME 顶层 回溯: 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) - 更多的 -(require 'clojure.contrib.repl-utils) 工作,我可以使用 (clojure.contrib.repl-utils/show #{}),但是(refer 'clojure.contrib.repl-utils) 给我一个错误。
还有一些问题。
- 为什么(使用 '..repl-utils)会导致错误,而 str-utils 不会?这两个库有什么区别?
【问题讨论】:
-
我已经尝试过 (ns foo (:use clojure.contrib.repl-utils)) 并且没有任何问题。 clojure 和 clojure contrib 的具体版本都是 1.2 RC2。您确定您使用的是匹配的版本吗?
-
请注意,单片 contrib 已在许多版本中被弃用,并且多年未维护/更新。有关详细信息,请参阅此页面:dev.clojure.org/display/community/Where+Did+Clojure.Contrib+Go