RxPyに入門する
更新: 2017年12月7日
RxPyに入門する
ブログを書くという行為のリハビリ的記事ではあります。
最近、pythonを触っているのですが以下のような場面があったとします。
- イベントが発火して処理Aが終わったら処理B、
- それが終わったら処理Cをしたい。
- だけど、B処理の結果が芳しくなかったら破棄してまたイベントを待つ。
と言った挙動をさせたいなーとなった際、ああ、これはリアクティブプログラミングだなと思ったので試してみた次第。
Unity触ってるときにUniRxを触っていたのもある。
# document
- http://reactivex.io/
- https://github.com/ReactiveX/RxPY
- https://github.com/ReactiveX/RxPY/blob/develop/notebooks/Getting%20Started.ipynb
# Tutorial
gistを載せときます。
サンプルは配列に入ってるデータをまとめて処理して出力する。というパターンが多かったのですが、自分はSubjectから入るほうが理解しやすかったので最初にこのパターンを載せます。
stream.on_nextで値を送信すると、設定しておいた処理順に従って処理、subscribe(購読)しておいた内容を実行する。という内容です。
途中でfilterが入っていて、filterに指定した関数がFalseを返却するとその値はsubscribeされません。
https://gist.github.com/mogeta/d557aace28a37c7134b7a8639ee6c540.js
↑のファイルをアップロードしたあとに知ったんだけど、ファイルを直接アップロードすればipynbであげられるんすね。こちらもアップしておこう。
https://gist.github.com/mogeta/9f8775ff487cae81b836b07198b80023.js
# Rxそのものをいろいろ学ぶ
- http://ninjinkun.hatenablog.com/entry/introrxja
- https://qiita.com/toRisouP/items/f6088963037bfda658d3
# この先
後はここから処理を足して行けば良い。throwで失敗した際の処理を記述、ある程度値がたまるまで待機、並列実行等。できることは多い。自分もこの後記事を何個か書きたいなと思っている。やっていきましょう。
# 余談
仮想通貨であるところのモナコインをはじめてみたので投げ銭お待ちしております。
50円で買ったモナコインが2000円になってて軽く引いている。

MHu66H5o2AyoQWbG4tdwRLu2cRqeVu839V
