【问题标题】:Is conjure-contrib.jar not standardized now?conjure-contrib.jar 现在不是标准化了吗?
【发布时间】: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

标签: clojure leiningen


【解决方案1】:

我不确定您所说的标准化是什么意思,但 contrib 不会在没有充分理由的情况下进行反向破坏性更改。有些事情偶尔会被移到核心,如果它们足够重要的话——我似乎记得这样做的序列函数,可能还有你正在考虑的字符串函数。

回复:Leiningen:一个新版本刚刚问世。无论如何,听起来您可能有版本冲突。

关于类路径:在你习惯它(或者它对我来说)之前,许多不愉快问题的根源。它可能是您提到的任何一种情况,考虑到上下文,我们几乎可以肯定是在谈论 clojure-contrib.jar。

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

【讨论】:

  • 我发现 clojure.contrib.repl-utils 库甚至还没有准备好更新。我将问题添加到原始帖子中。你能检查一下吗?
  • +1 虽然值得注意的是,如果您在 Eclipse 等 Java IDE 中使用 Maven,则与使用 Leiningen 一样简单
【解决方案2】:
  1. clojure-contrib 中的许多函数在 Clojure 1.2 中移入了 clojure 核心。现在和1.1的差距跟clojure.core的增长差不多。

  2. 获取 leiningen 更新

  3. 不知道我只是用leiningen

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2010-12-04
    • 2012-06-03
    相关资源
    最近更新 更多