1

これは簡単なことのように思えますが、AcidState の Data.Acid.Memory.Pure モジュールを使用している場合、クエリから純粋な値を取得するにはどうすればよいでしょうか。「どうすれば Update モナドから値を取得できますか?」という質問を一般化できると思います。ご覧のとおり、次のありふれたタスクを実行するテストを作成しようとしています。

  • 純粋な AcidState をオブジェクトで更新します
  • IxSet を使用してそのオブジェクトの状態を照会します
  • クエリされたオブジェクトと Update によって返されたオブジェクトが等しいかどうかを比較します。

テストフレームワークとの統合を容易にするために、これから純粋な「Bool」が必要です。最初は単純に Control.Monad.State の runState を使用するだけだと思っていましたが、間違っていました (または正しく実行していませんでした)。私は何をすべきか?

4

1 に答える 1

1

Data.Acid.Memory.Pure使用しているため、そのモジュールのupdatequery、および関数 ( の関数の代わりに) を使用して、イベントの結果を純粋に見ることができます。通常の impure と同様に、単純に「 andモナドを実行する」のではなく、最初にそれらをイベントに変換する必要があります。のコンストラクタでラップするだけです。update_Data.Acidacid-stateUpdateQueryData.Acid.Memory.PureEvent

于 2012-09-30T19:17:58.643 に答える