クラウド温泉3.0@小樽のセッション「Monadicプログラミング・マニアックス」関連記事のIndexです。
記事一覧
「Monadicプログラミング・マニアックス」のスライドの作成過程のメモ記事の一覧です。
- クラウド温泉3.0@小樽
- クラウド温泉3.0 (2) / 代数的データ型
- クラウド温泉3.0 (3) / 代数的データ型 on Scala
- クラウド温泉3.0 (4) / 永続データ構造
- クラウド温泉3.0 (5) / 永続データ構造としてのケースクラス
- クラウド温泉3.0 (6) / Monadicプログラミングの非公式定義
- クラウド温泉3.0 (7) / 関数によるMonadicプログラミング
- クラウド温泉3.0 (8) / Functor
- クラウド温泉3.0 (9) / Functorによる計算文脈
- クラウド温泉3.0 (10) / map, filter, fold
- クラウド温泉3.0 (11) / reduce, collect, flatMap
- クラウド温泉3.0 (12) / Monoid
- クラウド温泉3.0 (13) / Monad
- クラウド温泉3.0 (14) / Applicative
- クラウド温泉3.0 (15) / Arrow
- クラウド温泉3.0 (16) / Kleisli
- クラウド温泉3.0 (17) / SQL
- クラウド温泉3.0 (18) / Promise
ノート
"関数型プログラミングはパイプライン・プログラミング"、と考えてみるとイメージも分かりやすいし、実際のプログラミング時のガイドとしても有効なので、その観点でまとめてみよう、というのが今回のセッションの趣旨です。
元々Haskell的、Scalaz的Monadicプログラミングをやろうと思ったのは、ScalazのPromiseを見て衝撃を受けたのがきっかけなので、PromiseとKleisliやApplicative Functorを組合せて並列プログラミングした効果を実測値付きで盛り込めて目標の一つは達成できたかなと思います。
実際に書き始めてみると、Monadicの話に行く前に今風の関数型プログラミングの基礎といったものが必要なことが分かったので、その部分を厚くしてみました。逆に、当初予定していたReducerを使ってMonoidを任意のドメインオブジェクトに接続する手法や、TraverseでKleisliをオブジェクトの集まりに適用する話題(これはミニセッションのテーマにもなった「Iteratorパターンの本質」とも関係してきます)、Validationを使ったMonadicプログラミングの具体例、といった話題は見送りました。
ボク自身もScalazを本格的に使い始めたのはここ一年ぐらいなので、まだまだ山の麓の所にいるわけですが、色々と追いかけていく方向性も見えてきたので、来年のクラウド温泉でもさらにマニアックな話題で何か発表できればと思っています。
0 件のコメント:
コメントを投稿