CategoryとArrowと圏論
#圏論とプログラミング
#WIP タイトル
from Arrow型クラス
John Hughes
真面目にやるためにはCCCを完全に理解していないといけない気もしているmrsekut.icon
Hask圏では、対象を型、射を関数とみなしていたが、
更に一般化して、対象を型、射をcomputationとして定義する
inputをoutputに「どのように変換するか」がインスタンスとなるので、
computationを表す型クラスと、捉えることができる
故に、computationの具体例はすべてCategory型クラスのインスタンスにできる
Categoryのインスタンスが圏
Categoryそのものは「圏の定義」なので、圏よりも上の次元の概念である
例えば、->で構成されたCategoryが、Hask圏である
つまり、Hask圏は、「関数の圏」である
arrが圏間の関手
敢えてHask圏と比較して書いたほうがわかりやすいか?
table:比較
Categoryのinstance Hask圏
対象 型 型
射 arrow 関数(->)
関手 arr 自己関手fmap
「Categoryのinstance」の一例がHask圏、当たり前に前者のほうが一般的
雑メモ
Kleisli mを理解できればもうちょいまともな図が描けると期待しているmrsekut.icon
https://gyazo.com/32eb59ce3bbc3832ca98f24933a5b6c9
https://en.wikipedia.org/wiki/John_Hughes_(computer_scientist)
http://ziphil.com/diary/mathematics/41.html
http://ziphil.com/diary/mathematics/42.html
http://ziphil.com/diary/mathematics/43.html
http://ziphil.com/diary/mathematics/44.html
http://ziphil.com/diary/mathematics/45.html
http://ziphil.com/diary/mathematics/56.html
https://qiita.com/tezca686/items/855236ccdda584ee8ebb
Arrowという型クラスがある
Arrow型クラスのインスタンスとなる型は圏になる
この圏はHask圏に限らない
https://qiita.com/yasuabe2613/items/11a04913ae5cf9dfa7ee