関数型ストリーム処理勉強会

に参加した話.できるだけまとめる. しかし,筆者は関数型とかHaskellとかScalazにはからっきしであることに注意.

Akka Streamsについて @mtoyoshi

  • 資料: https://twitter.com/mtoyoshi/status/662843334235283456

  • Akka Stream 1.0 は今年7月に出た新しいヤーツ.

    • 2.0-M1は今日出た.
  • Reactive Streamの規格にあったライブラリ.
    • RxJavaとかの規格に沿ったものと接続ができる.
  • 関数型プヨグヤミングは理論を組み立てるフェーズと実行するフェーズにわけられる.
  • ブログラミングするときは部品をつなげてRunnableGraphを作って実行するという流れ.
    • 型安全.
    • Source から Sink へ流すことで作れる.
    • Source と Sink のみをテスト用にしてあげて,テストもできるっぽい.
  • 新たな部品はPushStageを継承すれば作成できるっぽい.
    • onPushを実装する感じ.
  • 普通にコレクションの操作をする感じで色々書ける.

  • 感想:

    • とても使って見たいと思った.
    • 思ったのは,並列処理をさくっと書けるActorSystemはすごいなぁ,といった感じ.
    • あと資料がめちゃくちゃ見やすかったので,とてもありがとうございます,ていう感じです.

fs2(scalaz-stream) によるDBアクセス @gakuzzzz

ぶっちゃけ僕にはむずくて何となくしか理解が進まない感じだったので, 出たワードについて調べた結果をかきます.

ストリーム処理ライブラリはなぜ必要なのか @ffu_

  • 資料: https://twitter.com/ffu_/status/662867603707179008

  • ここからHaskellの話.

  • Haskellでファイル読み込みとかをやろうとした時クソ辛かった.
    • LazyIO: 比較的簡単に書けるけど,純粋な関数で例外が出ちゃう.
    • Handle: 書くのが辛い.
  • そこでio-stream.

    • サクッと書けるすごい.
  • 感想:

    • 終始なるほどしか言ってなかった.
    • Haskellのコードを久方ぶりに見たけどio-streamをつかったコードを見て書くモチベは上がった.
    • 資料がgoogle spread sheetでみんなが書き込める形式は新しさを感じた.
      • 匿名ニャンキャットを観測した.

pipesチュートリアルを読んだ話 @its_out_of_tune

Arrowによるストリーム処理(主にauto使用) @as_capabl

最強のライブラリを作りたくて @fumieval

気になって調べたもの

まとめ

とりあえずはAkka Streamを触ろうと思えた. 加えて,Rxなんたらってのがなんなのか, ということが何となくつかめた気がする.

RxなんたらってのはReactive Streamsっていう仕様に即した実装で, コレクションに対してmapとかfilterとかで,メソッドチェーンをつなげる感じ と同じ感じで, Sourceからメソッドチェーンで書いていって,最後にSinkを書いてシメ って感じで書けて, かつそれが非同期にうまいこと動いてくれる ってのが利点

なのかなー(多分(Maybe))

っていう何となくの理解をした(一応言葉にしたけど正しくない可能性有り).

あと食わず嫌いせずにHaskellとか触らんと関数型にしっかり浸かれないなぁと感じた. あとモナド

なんにしても行ってよかった!

企画,運営の方が見ておられましたら, とてもたのしかったです,ありがとうございました!