Session
Tackling Side Effects with Functional Programming and Flix: JVM関数型言語Flixで学ぶ副作用の分離/局所化戦略
# セッション概要
関数型プログラミングと呼ばれるプログラミングスタイルでは純粋関数と不変データが基本的なブロックとして重視される一方で、現実に意味のある振る舞いをもたらすにはプログラムのどこかで「副作用」を生じさせる必要に迫られます。
新興のJVM関数型言語Flix (https://flix.dev/)を利用しながら、副作用をソフトウェアの中核から分離/局所化する典型的なアプローチを探ってみましょう。
# 発表要旨
JVMで動作する静的型付き関数型言語Flixのコード例とともに、関数型プログラミングの世界でよく知られている副作用の分離/局所化の手法を分かりやすく解説する。
# このテーマを取り上げる理由
関数型プログラミング(言語)に親しんでいくと自ずと直面する副作用との関わり方には、関数型言語に限らず任意の言語でのソフトウェア設計に有用な示唆が含まれており、(理論よりも)実践の観点から紹介したいと考えたため。
# アジェンダ(仮)
## 導入
1. 副作用とは何か、なぜ重要か
2. Flix言語の基本(概要と書き方)
3. 関数型プログラミングの道具箱
## 本編
4. 副作用の分離/局所化のアプローチ
- パラメータ化(高階関数)
- 処理のデータ化と解釈(インタープリタ)
- 型レベルの分離/局所化(モナド、代数的エフェクト)
## まとめ
5. 副作用分離/局所化の基本戦略
# 想定するオーディエンス
- 何らかのJVM言語での開発経験がある
- 関数型プログラミングに興味があるが、必ずしも関数型言語の学習/利用経験はない
- Flixという言語を初めて知った(もしくは以前に知って興味があった)
- DI (dependency injection)手法やソフトウェアテストのスタブ/モックとの付き合い方を見直したい
# このセッションで聴講者にどういうメリットがあるか
- 普段使いの言語や開発しているソフトウェアの文脈で副作用の分離/局所化を進める手がかりを得る
- Flix言語を試してみたくなる
# 発表の範囲
## 話すこと
- 副作用の扱い方を議論する上で必要な範囲での関数型プログラミング一般とFlix言語の基礎解説
- 副作用の分離/局所化に関わる典型的な手法
## 話さないこと
- Flix言語の特徴や機能の網羅的な解説
- 副作用の分離/局所化に関わるあらゆる手法の紹介
Kent Ohashi
Senior Product Engineer at Smartround Inc.
Chiba, Japan
Links
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top