本日も復習の続き。
2.5 汎用演算のシステム
異なる種類の引数に対して汎用な演算を定義する。
ユーザーに対しては add や sub といった共通の手続きが提供されていて、内部は加法的に拡張が可能になる。
2.5.1 汎用算術演算
put, get, apply-generic を駆使して汎用算術演算システムを構築していく。
2.5.2 異る型のデータの統合
異なる型のデータ間で演算をおこなう方法の考察。
型の組み合わせ毎に関数を用意していく方法→うまくいくが煩わしい
強制型変換
ある型のオブジェクトを他の型のオブジェクトとみなして演算をおこなう
型の階層構造
ある型を別の型に変換できなくても、両者を第三の型に変換することで演算が可能になる場合もある。このような問題に対応するために、型の間の関係を利用する。
階層構造の不適切さ
型変換の上下が一意に決まるならいいが、そうでない場合も多々ある。
ここまでで復習おわり。明日から問題に戻ります。