「関数型言語は開発効率が良い」とよく言われます。「オブジェクト指向と比べて‥‥」なんてつい比較してしまうがゆえに論争っぽいループが発生したりするのを良く見かけますが、まあそれはおいといて、実際なぜ効率が上がるのか考えてみました。 関数型言語が採用する概念のうち、特に工数削減に貢献する要素を挙げてみます。 パターンマッチ プログラムでは条件に応じて処理を仕分けることが多々ありますが、入り組んだIF文はそれだけでプログラムの意図が分かりにくくなりバグの温床となります。 モダンな関数言語では、条件判断記述を関数の入り口に設置し、条件を満たしたときだけ関数の本体を実行するような構文が書けるタイプの文法を採用しています。このような構文は、コンパイル時或いは実行時にIF文が合成され、パラメータにより処理が分岐されます。CやJavaなどのswitch-case構文をものすごく強力にしたもの、と考えればい