関数型言語の面白さ

ここ数日Erlangを触っていて、少しだけ関数型言語の面白さがわかってきた。というのも、参照透明性と高階関数がプログラムの抽象化に寄与しているというのが、なんとなくわかってきたから。

参照透明性があるから副作用無く関数を組み合わせられるというところが、組み合わせた物を再利用単位として扱えるようになる。また、高階関数が抽象物をパワフルに作れるようにする仕組みになっている。これらの二つがあることで、関数を組み合わせられ、組み合わせたものについても副作用が無く、それ単体で再利用ができることが保証できる。ここに関数型言語の面白さの一つがあるというのは、何となくわかってきた。

About Haskell、なぜ関数プログラミングは重要か?に書かれている内容は、遅延評価を除いて理解できるようになった。
http://web.yl.is.s.u-tokyo.ac.jp/~ganat/memo/aboutHaskell.html
http://www.sampou.org/haskell/article/whyfp.html
遅延評価については、Haskellも触って勉強する事にしようかなと。