私は、一連の結果(Clojureベクトルに似ています)を表すJavaクラスを使用しています。私はしかし、私はがクラスを変更することはできません一般的なClojureのシーケンス機能(つまり、私は、それが配列の抽象化をサポートするかのようにクラスの振る舞いを持つようにしたい)と、このクラスを使用したいJavaクラスをClojureのシーケンスとして動作させる
はそれを作ることができませんclojure.lang.Seqable
などを実装してください。また、面倒くさい、クラスはjava.util.Collection
またはjava.lang.Iterable
を実装していません。
- 使用
iterator-seq
オブジェクトの(既存の)イテレータ:は、私はいくつかのオプションを見ることができます。
- ラップ
java.util.Collection
/clojure.lang.Sequable
- を実装して、別のクラスのオブジェクトは、オブジェクトに
を照会することにより、Clojureのベクトルまたはシーケンスを構築する関数を作成し、他のオプションはありますか?最善のアプローチは何ですか?
'iterator-seq'は内部的にオブジェクトのラップに関する2番目の点と同じことをします – Ankur