2011-07-01 12 views
1

F#では関数が純粋なままであることを確認する上でオンラインではあまりないようです。F#でprintfn/IOを純粋にする

例を作成するには、F#でprintfn/IOを純粋にする方法がありますか?

答えて

8

ハスケルのIOモナドのF#実装については、Googleを使用することができます。 Hereは素晴らしい例です。

+0

私はそれを逃したと信じられない!ありがとう – bleakgadfly

0

コンソールへの印刷は、ステート(コンソールステート)を変更し、副作用(コンソールバッファの一部を削除するなど)がある定義に基づいています。

あなたがCodeContractsのsomekindを使用しているかのようなどこか別の関数の結果を書き出す、またはあなたのコードが動作するより簡単に確認のためのアサーション(Contract.AssumeまたはContract.Assertを(これは静的アサーションのために使用されている))の使用を検討する必要がある場合。

関連する問題