型クラス

型クラスを一言で言うと型に対する制約というので良いのでしょうか。性質とか特徴と捉えた方が分かりやすいような気もしますけどどうなのでしょう。

本には例としてsort関数のことが書かれていて、sort関数は整数のリスト・浮動小数点のリスト・文字列のリストのどれもソートしたいので、多相的でないと不便です。かといってどんな型のリストでもソートできるのかというと必ずしもそうでなく、例えば関数のリストはソートできないようにしておくのが妥当でしょうという場合があります。

このように多相的ではあるのですが対象を限定するような場合に型クラスが登場します。sort関数の場合は、順序が付けられることという制約が必要なのですね。