2012-03-31 2 views
5

ちょうどgrokのモナドに始まります。私はClojureで考えるので、純度は私にとって非常に重要ではありません。モナドを使用して変形可能な変換を一括して行うには?

私は、失敗するかもしれない一連のビジネスオペレーション(構成可能な変換)を持っています。これはエラーモナドでうまく抽象化することができます。

一部のビジネスオペレーションにはデータベースIOが関係しており、高速化のためにオペレーションを一括して実行する必要があります。各バルク操作は独立した項目のセットに作用するため、1つの失敗がセット全体を失敗させてはならない。

私は一括変換をエラーモナドのようなものの中で行われる1つのオブジェクト(マップ)上の一連の関数として考えるべきですが、seqの独立した項目に作用しますか? seq-monadは私を助けますか?私はこれについてどのように考えるべきですか?他のアイデア?

これをIOモナドと組み合わせると、Clojureのデータベースの副作用について特別なメリットはありませんか?

+1

サンプルコードを入れて、人々があなたが求めている問題を「もっと見る」ようにすることはできますか – Ankur

答えて

1

あなたのビジネスケースは少し関わっているようですので、正確に何が必要かを言うのは難しいですが、clojure.algo.monadsライブラリを使用するといくらかのマイルがかかるかもしれません。

バッチを内部的に処理するエラーモナドまたは多分モナドに独自のバリエーションを作成できます。

関連する問題