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 answerをご覧ください。clojure.core 関数だけで再実装することもできます:

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