これは「関数型プログラマのための Rx 入門」の補足記事です(タイトル変えた)。 前編、後編とお送りしてきたこの記事だが、特に後編について「何を言ってるのか分からん」というコメントを何人かの方から頂いた。…なんというか、ごめんなさい。 繰り返しになるが、Rx を使う上で関数型プログラミングの知識は必ずしも必要ではないし、むしろ(関数型のコンセプトが基礎にあるのに関わらず)知らなくても使えるようになっている。ライブラリの作者たちは「過度な抽象化は害になる」ということを弁えているのだろう。 しかし、Rx と関数型プログラミングの関係を把握しておくと、非同期データストリームのビルディング・ブロックの作り方について大いに視野が広がるだろう。もし、貴方がこの記事の前提となる「関数型」のパラダイムに興味をお持ちなら、まずは「関数プログラミング実践入門」をお勧めしたい。 関数プログラミング実践入門 ──
概要 『Observable は単なる非同期データストリームにおけるモナドのインスタンスだよ。何か問題でも?』 まともな概要 つまり、Reactive Extensions (Rx) って何だ? ということでウェブをガサゴソと漁っていたところ、オンライン講義サービス Coursera の Principles of Reactive Programming に行き当たった。この講座では、Rx の主要開発者の一人である「双対おじさん」こと Erik Meijer 氏自らが一部の章を担当し、Rx の理論的側面を講義している。 この講座の大きな特徴は、Rx を(命令型プログラミングではなく)関数型プログラミング (FP) の側から解き明かしていくことにある。 こう書くと奇をてらっているように見えるかもしれないが、実際には Rx は FRP (Functional Reactive Program
前編では、Reactive Extensions (Rx) の機能を関数型プログラミングの視点で読み解いた。続いて後編では、前編で紹介した Rx が関数型的な機能を提供している背景、つまり Observable と他の一般的なコンテナの関係に対してスポットライトを当ててみたい。 あらかじめ断っておくと、本編の話題は、実際に Rx を使う上で理解している必要は(あまり)ない。とりあえず、 Observable は、List や Future と同じくモナドの一種である 以下の表に出てくるコンテナは、隣同士で互いによく似た(あるいは正反対の)性質を持っている: 単数 複数 同期 (pull) T/Try[T] Iterable[T] 非同期 (push) Future[T] Observable[T] …という話だけ記憶に留めてもらえば、ここで回れ右してもオーケー。とはいえ、興味のある人はこの
1. The History of Reactive ExtensionsHow extended Rx across languages 2014/10/28 RxJava Night #rxjnight Yoshifumi Kawai -@neuecc 2. SelfIntroduction @仕事 株式会社グラニ取締役CTO 神獄のヴァルハラゲート, モンスターハンターロアオブカード 最先端C#によるハイパフォーマンスWebアプリケーション @個人活動 Microsoft MVP for Visual C# / 野良C#エヴァンジェリスト Web http://neue.cc/ Twitter @neuecc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く