UNIXの哲学と関数型プログラミング
UNIXの哲学と関数型プログラミングは共通しているところがあるよね、というのを最近同僚と話した。
ここでいうUNIXの哲学とは
- スモール・イズ・ビューティフル
- 一つのプログラムには一つのことを うまくやらせる
- ソフトウェアの挺子を有効に活用する
など(「UNIXという考え方-その設計思想と哲学」より)。
それらと、関数型プログラミングの、一つの機能に絞った小さな関数を組み合わせ、大きな関数を作っていくという部分が似ているなと。
とりわけ強くそう思うのが、UNIXでコマンドをパイプで繋げて自分の期待する結果を得るところ。関数型プログラミングだと、関数合成にあたる。
UNIXの操作に慣れている人なら、関数型プログラムもしっくりくるのでは。