タグ

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

タグの絞り込みを解除

perlとhaskellに関するemonkakのブックマーク (1)

  • PerlによるFreeモナドの実装 - Pixel Pedals of Tomakomai

    悟りを開けると話題のFreeモナドをPerlで実装した。実装はこちら。 Freeモナドとは? モナドの性質の1つとして、flatten : TTX → TX (または join、またはη)によって重複する関手Tを1つに押しつぶせるという点がある。そのお陰で、TTTTTTXのようにTが複数ある型は考える必要がなく、XとTXという2つの型に限定して計算を考えることができる。が、モナドではない一般の関手Fではこの操作ができない。 じゃあこの操作を普通の関手でもできるようにしてやろうということを考えると自然とFreeモナドが構成できる。直和が定義できる圏であれば、自由モノイドを作るのと同じ要領でモナドを作ればよい。具体的には、関手を適用しない型、1回適用した型、2回適用した型、・・・*1のすべての直和をとる。つまり、TX = X + FX + FFX + FFFX + ... のような関手を作るこ

    PerlによるFreeモナドの実装 - Pixel Pedals of Tomakomai
  • 1