関数型Pythonアンチパターン
関数型かつPythonic
トークでは関数型かつunPythonicを紹介 (slide=4)
関数型 (slide=5)
状態変化を排除
高階関数
Pythonic (slide=6) ※ただしお気持ち
Pythonの言語機能にマッチする
Pythonのコミュニティの価値観によりマッチする
まとめ (slide=47)
関数型としてC#のLINQの例 (slide=9)
Where, Select, Average
-> Python組み込み関数のmap, filterを重ねる(slide=10)と読みづらい
アンチパターン
1. 長い式を連ねる
-> 式を区切り、名付ける
2. map/filterを使う
3. 内包/reduceを乱用する
-> ループを書き、隠蔽する
関数の中ではループを書いてもいい。状態変化を外から見えなくする
Appendixに 4.クロージャを濫用する
-> オブジェクトと使い分ける
https://www.youtube.com/watch?v=mk0qJA2y-8A