Masatake YAMATO
yamat****@redha*****
2014年 6月 12日 (木) 20:24:27 JST
> なるほど。 > > push!は定義からして、対象となる場所の初期値が()であることを前提にしてます。 > なので「初期値を別に与えないとならない場所」に使うのはドメインエラーとも言えます。 ドメインエラーと言われていしまいましたが、push!を拡張するというのは的外 れでしょうか。 前もってpush!が想定する例外を決めておき、push!可能なデータ側は「初期値 が無い」ところをrefしたタイミングで例外を上げることにします。push!は、 その例外がきたときだけ値を ( ) でつつんで set!します。この実現方法であ れば<hash-table>を含む初期値がない他のデータ型でもpush!でき、あたらしい データ型を覚えずに済みます。 あるゆるpush!に例外をキャッチするための仕掛けを準備するステップが増える のでもしかしたら問題となるかもしれませんが、新しいことを覚えずに済むのは 魅力に思います。 大和