タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

haskellに関するKinjouJのブックマーク (1)

  • モナドの実装いろいろ - Qiita

    モナドと一口に言っても内部実装色々あるので、同じ機能のモナドを色々な書き方で書いてみます。 要件 あまり複雑にしてもアレなので、State,WriterとIOの制約くらいにしておきます。 インスタンスはFunctor, Applicative, Monadのみ 内部にIntで0開始のカウンタと、DList Logで表現されるログを持つ incr :: Int -> DSL ()でカウンタを増減し、ログにI iを追加 reset :: DSL ()でカウンタを0に戻し、ログにRを追加 current :: DSL ()で標準出力に現在のカウントを出力。文脈内でそれ以外のIOは不可能とする runDSL :: DSL () -> IO (Int, [Log])でDSLを実行し、最後のカウンタの値とログを返す。 Logデータ型はこんな感じにして共通に使用し、

    モナドの実装いろいろ - Qiita
  • 1