型クラスの話をしました。 入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) オーバーロードは何故にかくも難しいのか:Haskellの成功と失敗 Haskellの型クラスに関わるワークアラウンド Haskellの型クラスは元祖・型クラス*1なんですが、なんか残念な仕様です。整合性が歪んでいる理由は、オーバーロード機能を優先しているからです。その分、構造としての型を記述する機能は犠牲になっています。トレードオフだから仕方ないけど。 ところで、オーバーロードの解決(多義性の解決)って、どうやるんでしょうか? そのメカニズムをJavaScriptのサンプルコードを使って説明します。 なお、「多相とオーバーロードはどう違うか」とかの話は、どうでもいい割に議論すると消耗してバカバカしいので一切触れません。(ちなみに、「並列と並行の違い」なんて議論も時間の無駄。暇つぶし以上の意味は