関数型ストリーム処理勉強会
に参加した話.できるだけまとめる. しかし,筆者は関数型とかHaskellとかScalazにはからっきしであることに注意.
Akka Streamsについて @mtoyoshi
Akka Stream 1.0 は今年7月に出た新しいヤーツ.
- 2.0-M1は今日出た.
- Reactive Streamの規格にあったライブラリ.
- RxJavaとかの規格に沿ったものと接続ができる.
- 関数型プヨグヤミングは理論を組み立てるフェーズと実行するフェーズにわけられる.
- ブログラミングするときは部品をつなげてRunnableGraphを作って実行するという流れ.
- 型安全.
- Source から Sink へ流すことで作れる.
- Source と Sink のみをテスト用にしてあげて,テストもできるっぽい.
- 新たな部品はPushStageを継承すれば作成できるっぽい.
- onPushを実装する感じ.
普通にコレクションの操作をする感じで色々書ける.
感想:
- とても使って見たいと思った.
- 思ったのは,並列処理をさくっと書けるActorSystemはすごいなぁ,といった感じ.
- あと資料がめちゃくちゃ見やすかったので,とてもありがとうございます,ていう感じです.
fs2(scalaz-stream) によるDBアクセス @gakuzzzz
ぶっちゃけ僕にはむずくて何となくしか理解が進まない感じだったので, 出たワードについて調べた結果をかきます.
- 参考資料: https://gist.github.com/xuwei-k/6574b69abd5ed47a6743
- Akka-Streamとscalaz-streamとの比較: https://twitter.com/mtoyoshi/status/662860032761991168
- DBに対するの操作はファイルに対する操作と似てるしまずそれをやってみる.
ローンパターン: http://www.ne.jp/asahi/hishidama/home/tech/scala/sample/using.html
感想:
- FP in Scalaを読もうと思った.
- 15章を読むと良いらしい(読めるとは言ってない).
ストリーム処理ライブラリはなぜ必要なのか @ffu_
ここからHaskellの話.
- Haskellでファイル読み込みとかをやろうとした時クソ辛かった.
- LazyIO: 比較的簡単に書けるけど,純粋な関数で例外が出ちゃう.
- Handle: 書くのが辛い.
そこでio-stream.
- サクッと書けるすごい.
感想:
pipesチュートリアルを読んだ話 @its_out_of_tune
資料: http://tokiwoousaka.github.io/takahashi/contents/day20151107pipes.html
今日はゆるふわ
ProducerからConsumer(Consumerがsinkの部分)へ繋いでいく.
- どうもこのライブラリは圏論まみれらしい.
Pipes: https://hackage.haskell.org/package/pipes
- チュートリアルとかも乗ってるっぽい
感想:
Arrowによるストリーム処理(主にauto使用) @as_capabl
感想
最強のライブラリを作りたくて @fumieval
Boombox: https://github.com/fumieval/boombox
感想
- モナドを知る必要がある.
- モナモナに興味が湧いた.
気になって調べたもの
- 非同期ストリーム処理の標準化を目指す "Reactive Streams" とは - Okapies' Archive http://okapies.hateblo.jp/entry/2014/04/20/212821
まとめ
とりあえずはAkka Streamを触ろうと思えた. 加えて,Rxなんたらってのがなんなのか, ということが何となくつかめた気がする.
RxなんたらってのはReactive Streamsっていう仕様に即した実装で, コレクションに対してmapとかfilterとかで,メソッドチェーンをつなげる感じ と同じ感じで, Sourceからメソッドチェーンで書いていって,最後にSinkを書いてシメ って感じで書けて, かつそれが非同期にうまいこと動いてくれる ってのが利点
なのかなー(多分(Maybe))
っていう何となくの理解をした(一応言葉にしたけど正しくない可能性有り).
あと食わず嫌いせずにHaskellとか触らんと関数型にしっかり浸かれないなぁと感じた. あとモナド.
なんにしても行ってよかった!
企画,運営の方が見ておられましたら, とてもたのしかったです,ありがとうございました!