まとめ(プログラマが知るべき97のこと)
関数型プログラミングを学ぶことの重要性
by Edward Garson
なぜ?
自分の書くコードの品質を大きく高められる。具体的には参照透過性が高くなる。
それによって、ドメインモデル開発において好結果につながりやすい。
参照透過性(wikipedia)
- 同じ条件を与えれば必ず同じ結果が得られる
- 他のいかなる機能の結果にも影響を与えない
#参照透過性が守られている場合 def f(x): return 2 * x f(1) #=> 2 #守られていない場合(変数eが外部の値と関数の中で異なる。) e = 1 def f(x): global e = 2 return e + x f(1) #=> 3 #これより下でeを使っていると、結果が変わってしまったりする #副作用を伴う機能の例としては、I/O制御(write/print等)、上記addのように破壊的代入を行う機能など
だから何?
関数型プログラミング言語をひとつ習得しよう(^^)