2011-01-03 11 views
2

私はClojureハッシュマップを実装するclojure deftypeを作りたいと思います。その後、Clojureではどのようにして自分のdeftype refableを作ることができますか?

(def a (ref (MyType.))) 

と:私は私のDeftypeハッシュ可能とSequableを作るためにClojureのインタフェースを実装することができることを認識し、私は私が行うことができるように私のDeftypeはClojureのSTMで素晴らしいプレーしてもらうために含めるために何が必要なのかconjとconsのようなdosync操作をSTMで安全に実行するには?

答えて

2

問題は、あなたがタイプ/クラスを記述しているが、HashableやSequable(など)のようなインターフェースを持つレコードによって、すべて解決されています。

他のハッシュマップのように、レコードをrefに入れることができます。問題はここでは見ないでください。

+0

Zubairのリファレンス – Zubair

+0

にエージェントが追加されたときに、外部データストアへの永続性を維持するために、ハッシュテーブルにはない追加機能が必要でした。 – Sergey

+0

私は本当に質問を理解していないような継ぎ目は、私はこれがメーリングリストに良いと思う。 – nickik

1

(def a (ref MyType))あなたがクラスMyTypeを参考にしているので意味がありません。

refに入れるタイプは、dosyncの本体には副作用がないため、理想的には変更不可能なタイプにする必要があります。

+0

私は質問を修正しました。申し訳ありませんが、私は(MyTypeを意味しました) – Zubair

関連する問題