(2009.1.3) Haskell での polymorphism について。 オブジェクト指向だと polymorphism (ポリモーフィズム) は「多態」と訳しますが、Haskell 界 (?) では「多相」というみたいです。 オブジェクト指向言語では、あるオブジェクトに対するメソッド呼び出しが、そのオブジェクト(の種類、クラス)によって異なる振る舞いをする、という意味で使われます。 Haskellにはパラメータ多相とアドホック多相があります。 パラメータ多相 Haskell は、静的に (=コンパイル時に) 型チェックしますが、型が違うだけで実装が共通化できることがよくあります。こういうとき、型をパラメータとします。このような多態をパラメータ多相 (parametric polymorphism) といいます。 次の例は、何かのリストの長さ(要素の数)を数えます。a は型変数で、