ekmett と scalaz

twitter上でいろいろあってekmett 勉強会 開催決定!

というわけで盛り上がってました(?)が

というわけなので、blog書いてます。


以前もScalazとHaskellの関連でblog書いたことがありましたが

Scalaz 6.0.4 と Haskell (GHC7.4.1) を比べてみることによってScalazのclassを分類して理解してみる

togetter: ScalazとHaskellの比較記事というか疑問点をいっぱい書いたら、shelarcyさんにいっぱい教えてもらったよ!

もう1年以上まえですし、比べたのはScalaz6ですし、個人的に当時に比べてある程度はHaskellにもScalazにも*1詳しくなってるので、以前とちょっと似たような感じになりますが、今回は「ekmettさんの作ってるライブラリとScalaz *2 の対応付け」という観点で調べて書きだしてみました。

それぞれ、全部そのまま対応しているわけではなく、おそらく1割程度しか関連していない場合などもあります。また、Freeやmtlなどのいくつかのライブラリは、同じようなコンセプトでも微妙に違った複数の実装*3があるはずですが、「どの実装がScalazのものに一番近いのか?」とかは考えず*4に、とりあえず少しでも関連していれば挙げてみました。あとHaskellの知識があまりないので、もしかしたらいくつか(名前が同じだけで)ほとんと別のものを挙げてしまっている可能性もあります(その場合はツッコミください)


とりあえず、かるく10個以上は関係していることがわかります。


ツッコミがあったり、あとで自分で気づいたことがあれば、修正するか追記するかもしれません。


あと、これとは別に気が向いたら、ekmettさんのScalaやScalazとの関わり(具体的にScalazのどのあたりにコミットしてたのか?)や、ekmettさんの古いScalaリポジトリ見てなにか書くかもしれません。

*1: 主に、ニートの間にscalazにpull reqを20〜30回ほどしたことによる http://d.hatena.ne.jp/xuwei/20121207/1354897000

*2:これ書いている時点の最新版の7.0.0-RC1

*3: つまり、ekmettさんが作ってる以外のもの

*4:というか、それを判断できるほどHaskellにまだ詳しくないです、すいません・・・