1

当我尝试使用

   (ns eight-puzzle.core
      (:use [clojure.contrib.seq :only (positions)]))

我收到这个错误

java.io.FileNotFoundException: Could not locate clojure/contrib/seq__init.class or        clojure/contrib/seq.clj on classpath: 
          RT.java:443 clojure.lang.RT.load
          RT.java:411 clojure.lang.RT.load
        core.clj:5530 clojure.core/load[fn]
        core.clj:5529 clojure.core/load
      RestFn.java:408 clojure.lang.RestFn.invoke
        core.clj:5336 clojure.core/load-one
        core.clj:5375 clojure.core/load-lib[fn]
        core.clj:5374 clojure.core/load-lib
      RestFn.java:142 clojure.lang.RestFn.applyTo
         core.clj:619 clojure.core/apply
        core.clj:5413 clojure.core/load-libs
      RestFn.java:137 clojure.lang.RestFn.applyTo
         core.clj:621 clojure.core/apply
        core.clj:5507 clojure.core/use
      RestFn.java:408 clojure.lang.RestFn.invoke
     NO_SOURCE_FILE:1 eight-puzzle.core/eval8699[fn]
     NO_SOURCE_FILE:1 eight-puzzle.core/eval8699

当我尝试导入任何东西时,就会出现这个问题。设置clojure时我做错了什么吗?

4

1 回答 1

3

对于由 Leiningen 管理的项目,外部依赖项应在project.clj文件中的:dependencies键下指定。

(defproject project1 "0.0.1"
  :description "Something"
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [clj-time "0.6.0"]])

注意:中的条目:dependencies可以来自 maven(maven 中央存储库)或Clojars

看起来你也在使用clojure.contrib. 该库已被弃用,如果可以的话,您应该升级。如果您只是使用clojure.contrib.seq/positions,请查看此StackOverflow 答案。您也可以仅使用 clojure.core 函数重新实现它:

(defn positions [pred coll]
  (for [[idx elt]
        (map-indexed vector coll)
        :when (pred elt)]
    idx))
于 2013-09-18T04:19:00.570 回答