- 303 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 01:18:46 ]
- マクロ云々みたいな実装レベルの話じゃなくて、継承とかみたいな概念レベルの話をしているのでは?
型の拡張というよりも、むしろ単位という新しい概念の導入に近い気がする。 整数型とか実数型とかはそのまま受け継いで、それとは独立に演算の制約情報を付加する、って感じで。 物理とかのペーパーだとよく単位つけたまま式に代入したりするけど、それをPCで実現させるような。 俺言語での超適当な例。 unit : Volt, Ampere; // 電圧・電流の単位を定義 unit : Watt = Volt * Ampere; // 電力と電圧・電流の関係を定義 variable Integer [Volt] : vol; // 整数型(単位ボルト)の変数volを宣言 variable Integer [Ampere] : amp; // 同様 variable Integer [Watt] : wat; // 同様 variable Integer [Volt * Ampere] : wat2; // これもアリか。Wattと同じ。 variable Integer : num; // もちろんただの整数型も宣言可能 vol = amp; // ERR wat = vol * amp; // OK wat = vol + amp; // ERR vol = wat / amp; // OK vol = vol * num; // OK vol = vol + num; // ERR
|

|