タグ

ブックマーク / myuon-myon.hatenablog.com (2)

  • monadからeffectへ - Just $ A sandbox

    追記 もう少しまともなeffect入門記事を書きました myuon-myon.hatenablog.com この文章は今から5-10年後に万が一effect systemが流行り始め、今のHaskellのような立ち位置になった場合に備えて書いています。 effect systemについて Haskellはモナドを用いて純粋・非純粋を切り分けることができる言語で、computational effectを扱うために導入されたものだった。 かつては関数 A -> B で一緒くたにしていたcomputationは、 A -> T B と、文脈 T をもった関数として表現できるようになった。ところでこのようなcomputational effectとしてのモナドを言語機能に組み込むには2つの方法があって、 Meta Language方式 (Haskell) Programming Language

    monadからeffectへ - Just $ A sandbox
  • Free Monadを使ってみよう! - Just $ A sandbox

    続編:Free Monadを使ってみよう!(2) - みょんさんの。 Haskell楽しいです。 Haskellは純粋なのでとても大好きです。 ただ、Haskellでは副作用のあるように見える(手続きっぽい)書き方をしたくなる時がどうしてもありますので、そういうところでは手続きっぽい書き方をすることになります。 つまり、 A = do m <- BBB runSth m のようなコードを、特にフレームワークがしっかりした大規模なプログラムではしょっちゅう見ることになると思います。 はっきり言いますが、私はこれが嫌いです。 Haskell-likeじゃない! なので、もっとHaskell-likeな書き方をしたいです*1。 はい、さて題です。 Free Monadを使いましょう。 Free Monadモジュールの中ではFreeというそのままの名前のデータがあって、 data Free f

    Free Monadを使ってみよう! - Just $ A sandbox
  • 1