高階関数、カリー化、クロージャ、遅延評価、ポリモーフィズム

関数を引数や戻り値とする関数。

  • カリー化

複数の引数を持つ関数から、最初の引数を指定し、残りの引数を引数とする関数を得ること。

カリー化をするための典型的な機能。
★以上の3つは、密接な関係にあり、関数型プログラムには不可欠である。

  • 遅延評価

目的の機能が必要になるまで、処理をしないこと。
利用しないオブジェクトは生成されないため、処理が最小限になり、
処理速度の向上が期待できる。Haskellは遅延評価が基本。
最近の言語であれば、たいていこの機能を利用可能。。

同一のメソッド呼出しで、対象となるオブジェクト(クラス)によって異なる処理が実行されること。
一般的なOO言語の場合は、継承して、メソッドオーバーライドで実現できる。
Javaの場合、インターフェースを実装することによって実現する。
C++は純粋仮想関数を使用する(と思う)。
関数型言語の場合、高階関数を利用する(たぶん。クロージャでもできるかも。)
だんだん適当になってきた。(笑)