実行のトレースを出力することを考える。出力は出力を生成する計算を表現する型を導入する。値は出力を生成したペアと計算結果の値で構成される。評価器をこの型に適合させるのは簡単だが、退屈である。outputは計算のトレースを表し、出力は以下のようになる。各バリエーションで、計算の種類を見た。それぞれMは、例外を発生させ、状態に作用し、出力を生成する計算を表した。M<Int>の型になった。M<B>の関数の型に替わった。これは、型Aを引数に取り、型Bの結果とMによって得られた付加効果を返す関数と解釈できる。これらのオペレーションはセクション3で説明されている3つの法則を満たさなければならない。}}この評価器は最初のものよりは複雑だが、柔軟である。定義と局所的な変更をするだけで良い。評価器全体を書き換える必要がない。単純なモナドでは、計算は値と何ら変わりはない。例外モナドでは、計算は例外を発生させるか、値を返す。mが例外の場合、再度例外を発生させ、その他の場合、関数kを戻された値に適応する。最後に関数raiseは例外を発生させる。以下のように変更すれば良い。状態モナドでは、計算は初期状態を取り、値とペアになる最終状態を返す。初期状態xと値aと最終状態xをとる計算を返す。unit(a)はaをとり状態を変更させない。初期状態xの計算mを実行し、値aと中間状態yを引き起こし、状態yの計算k(a)を実行し、値bと最終状態zを返す。状態を増加させ、空の値()を返す。以下に変更すれば良い。出力モナドでは、計算は生成された出力とペアになる値を返す。出力なしとペアになるaを返す。出力xと計算mの値aを抽出し、出力yと計算k(a)の値bを抽出し、xとyの結合からなる出力とペアになる値bを返す。出力xと空の値()の計算を返す。実行のトレースをmonadic評価器に適応すると以下のようになる。使用して、マイクからの入力を録音する。実FFTC言語ではじめる音のプログラミング―サウンドエフェクトの信号...2016-04-18デリゲートメソッドをRxSwift対応させる方法この例ではUIWebViewDelegateメソッドをRxSwift対応させる。サイン波を鳴らす月別アーカイブお薦めHaskell本リンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!tiny_wingさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。