トップ «前の日記(2009年01月16日) 最新 次の日記(2009年02月02日)» 編集

ohai日誌

2003|12|
2004|01|02|03|04|05|06|07|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|06|08|10|11|
2008|01|02|03|04|05|07|09|
2009|01|02|
2013|06|12|
2014|01|02|03|04|06|09|10|12|
2015|04|
2016|09|
2018|02|

2009年01月26日

_ Haskellのモナド

私が思うにHaskellのモナドには以下の3つの重要な側面があります。

  • いわゆるモナド則
  • 型クラスによって異なる計算法則を持つ世界を分離すること
  • 構文糖衣(do式)

で、モナドの種類によってこれらの側面のうち どれが重要かは異なります。 例えばIOモナドであれば、IOという型クラスによって 副作用があり順序が重要な世界と通常のHaskellの遅延評価を 標準で行うような世界を分離するという側面が重要になります。 Parsecもモナドを使いますが、この場合はdo式という構文糖衣を 使いたいというのが重要であるように思われます。

これら3つの要素は深い関係があるのですが、 全ての側面が常に同等に重要というわけではありません。 ある機能がモナドで提供されている場合、それが何故 モナドなのかというのを考えるためにはこういうことを考えて みるのがいいかもしれません。


トップ «前の日記(2009年01月16日) 最新 次の日記(2009年02月02日)» 編集