タグ

2017年8月16日のブックマーク (1件)

  • 快速のExtensible effects - モナドとわたしとコモナド

    extensibleは拡張可能レコードだけでなく拡張可能作用(extensible effects)も用意している。拡張可能作用は一時期Haskell界隈で話題になったものの、今では人気も下火になってしまった。新しいバージョンをリリースした今、拡張可能作用の動機と使い方について改めて紹介しよう。 難行の一次関数 Haskellでモナドをカスタマイズする方法としては、transformersのモナド変換子がよく使われている。モナド変換子は、モナドをパラメータとして取り、新たな能力を付与したモナドにする構造だ。例えば、StateT sはモナド変換子の一つである。任意のアクションm aはliftを使ってStateT s m aに変換できる。 newtype StateT s m a = StateT { runStateT :: s -> m (a, s) } 他にもReaderT, Write

    快速のExtensible effects - モナドとわたしとコモナド