【関数型言語】学ぶ目的・メリット

単なる好奇心ももちろんある。関数型言語って何ぞ?

実用的な観点として、次のようなもの

 

最近はプロセッサがマルチコアになり、またスケーラブルなシステムにするためにクラウド上にクラスタを作って動かすシステムが増えている。処理速度を上げるために、並列処理を進めたい。

メジャーな言語(Java, C++など)は、スレッド間でデータを排他処理しなければならないが、適切に設計するのは難しい。

 

その点、関数型言語は並列化が容易だ。(らしい)それは、すべての関数とデータがイミュータブル(immutable 不変)なので、排他制御が不要になるから。

 

という理屈はわかった。実感がわかない。なので、並行処理を必要とするアプリケーションで、オブジェクト指向言語関数型言語で、詳細設計・実装がどのように変わるか、比較してみたい。(いつか)