This page introduces a lot of clojure libraries. And this page also comments to consider using the clojure-contrib.
- Why the clojure-contrib.jar is different in size? The leiningen's clojure-contrib-1.2.0-beta1.jar is 479.2KB in size, but the conjure-contrib.jar that I downloaded from Programming Clojure is 2.9MB. As I explained in here. Does the clojure-contrib.jar is not standardized as of today?
- Should the libs in the page be a part of clojure-contrib? If so, why leiningen's clojure-contrib.jar doesn't have the str-utils or repl-utils? As a result, I can't run (use 'clojure.contrib.str-utils) with leiningen (lein swank) in emacs/slime.
- What's the meaning of clojure.contrib.A as is shown in the page? As far as I know, (use 'a.b) lets clojure to find CLASSPATH/A/B.clj to load and do refer as is explained in Programming Clojure book page 18. Is this saying that the A clj file in /clojure/contrib directory or inside the clojure-contrib.jar?
- How to download, install, and setup the libs in the page?
Added
After updating leiningen, I checked that (use 'clojure.contrib.str-utils) works fine. But, (use 'clojure.contrib.repl-utils) gives me the following error.
[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--
(require 'clojure.contrib.repl-utils) work, and I can use (clojure.contrib.repl-utils/show #{}), but (refer 'clojure.contrib.repl-utils) gives me an error.
And here are some more question.
- Why (use '..repl-utils) causes an error, whereas str-utils does not? What's the difference bewteen the two libs?