[[MenuBar]]

*概要 [#c986b38e]
-純粋関数型言語

*まとめ [#z60568db]
-[[Haskellレベルでクライスリまで持って行っている>http://qiita.com/CyLomw/items/ff1e5d1600291c952c5e]]
-[[いい感じのHaskellブログの講評>http://qiita.com/sct/items/c7fb5e66ba8fa4d27403]]

*単語 [#g49db933]
|英語|日本語|解説|h
|Object|対象|Haskellの型。''関数は対象でもあり射でもある!''|
|Arror|射|関数|
|Category|圏|Haskellの型と関数を対象、関数を射と見なした集まり。唯一の恒等射と、結合律が必要|
|Functor|関手|「圏の圏」における射。関手則を満たす必要あり|
|Category|圏|対象と射の集まり。唯一の恒等射と、結合律が必要。Haskellの型と関数を対象、関数を射と見なすとHask圏ができる|
||デカルト閉圏|型が対象、関数が射、関数合成が射の合成、id関数が恒等射、と対応づけた関数型言語の圏|
|Functor|関手|圏から圏への写像。関手則が必要。HaskellのFunctorに相当|
||自己関手|自分の圏から自分の圏への写像。|
||自己関手圏|&mimetex($[C,C]=C^C$);を自己関手圏という|
|Lifting|持ち上げ|普通の関数f(a -> m b)を,文脈に作用する関数に変換する演算f*(m a -> m b)にすること。この演算*をKleisli Starと呼び、Haskellでは>>=, bind演算子という|
|Monadic Expression|モナド式|Monad m => m aのこと。|
||||
|Monad|モナド|自己関手の圏におけるモノイド対象。|
|fold|畳み込み|圏論では、catamorphism|

自然変換
代数的データ型自体もF始代数

*モナド [#p0878738]
-ファンクタの文脈

|名前|文脈|h
|Maybe|失敗可能性|
|IO|副作用演算|
|[]|非決定性計算|
|State|状態保持|

-do文
--中に書けるのは、
+++モナド式
+++パターン <- モナド式
+++let { 宣言1 ; 宣言2 ; ... ; 宣言n }

*Tips [#e71953dd]
-http://d.hatena.ne.jp/gintenlabo/20100601/1275396082
-- C++ における Maybe 相当の機能は、果たして Boost.Optional だけなのでしょうか。少し考えると、実はポインタもまた Maybe であることが分かります。
-- Boost には、既に Maybe に相当する Boost.Optional が存在する
--Boost.Optional は C++ でも屈指の便利ライブラリ

-http://d.hatena.ne.jp/StudyGuide+Memo/20140403/p1
-普通に書いてきたプログラムは、関数(集合写像)よりもクライスリ圏の射だって考えた方がいいよ
-[[モナド数学>http://qiita.com/myuon_myon/items/7e20c4b3af83597547d8]]
--そもそもモナドって何なんですか?はい、何なんでしょう?ここで、フィリップ・ワドラーの言葉を引用してみます。「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」
-http://south37.hatenablog.com/entry/2014/04/20/%E3%83%A2%E3%83%8A%E3%83%89%E3%80%81%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E8%87%AA%E5%B7%B1%E9%96%A2
%E6%89%8B%E3%81%AE%E5%9C%8F%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%A2%E3%83%8E%E3%82%A4%E3%83%89
-[[代数構造デザインパターン>http://modegramming.blogspot.jp/2012/03/blog-post_02.html]]
-http://anopara.matrix.jp/2015/12/08/%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%805-%E5%8D%8A%E7%BE%A4%E3%81%A8%E3%83%A2%E3%83%8E%E3%82%A4%E3%83%89/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS