1

1.2 で導入された新しいプロトコルのため、プロジェクトを clojure 1.1 から 1.2 に移行しようとしました。しかし、:useclojure-contrib.duck-streams を実行しようとすると、既に clojure.core に存在する 'spit' に関する警告が表示されます。clojure.core にも存在する clj-time.core と 'extend' に関する同じ問題。

これらのばかげたエラーを回避する最もエレガントな方法を説明できる人はいますか?

ところで:私からproject.clj

 :dependencies [[org.clojure/clojure "1.2.0"]
                [org.clojure/clojure-contrib "1.2.0"]
                [clojure-csv/clojure-csv "1.1.0"]
                [org.shxiao/clojureql "1.0.0"]
                [clj-time "0.1.0-SNAPSHOT"]]
4

3 に答える 3

3

. _ (:refer-clojure :exclude [extend])_ (ns ..)しばらく前にそれを修正するためのパッチを提出しました。彼らはそのための新しいスナップショットを決して出さなかったと思います.

ダック ストリーム ビットについては、以前spitはダック ストリームにあったためですが、現在は clojure.core にあります。clojure.java.io をチェックしてください。ダックストリームの機能のほとんどは、Clojure 1.2 で最高潮に達しました。clojure.java.io を使用したくない場合、spit 警告はほとんど無害ですが、clojure.contrib.duck-streams (これも clojure.contrib.io今)。

(ns foo (:use [clojure.contrib.duck-streams :exclude [spit]]))

clojure.java.io の API ドキュメントは次のとおりです: http://clojuredocs.org/Clojure%20Core/clojure.java.ioこの記事を書いている時点では、 http: //clojure.github.com/clojure/ にドキュメントはないようです。理由はわかりません。

于 2010-09-26T15:53:27.930 に答える
1

この情報の一部は正しいものですが、duck-streams は contrib から削除されており、1.2 以降は存在しません。いずれにせよ、Clojure のコアでまだ実行できないことは、ダックストリームではほとんどありません。

于 2011-03-25T13:25:55.193 に答える
0

干渉の原因となっている関数を除くすべてをインポートします。次に、spit は clojure.core に取り込まれたバージョンを参照します。これはおそらく推奨されるバージョンです。

(use '[clojure.contrib.duck-streams :exclude 'spit])

ns マクロの形式は次のとおりです。

(ns foo (:use [clojure.contrib.duck-streams :exclude 'spit]))
于 2010-09-26T15:57:54.173 に答える