[Gauche-devel-jp] hash-tableに対するpush!

Back to archive index

Masatake YAMATO yamat****@redha*****
2014年 6月 12日 (木) 20:24:27 JST


> なるほど。
> 
> push!は定義からして、対象となる場所の初期値が()であることを前提にしてます。
> なので「初期値を別に与えないとならない場所」に使うのはドメインエラーとも言えます。

ドメインエラーと言われていしまいましたが、push!を拡張するというのは的外
れでしょうか。

前もってpush!が想定する例外を決めておき、push!可能なデータ側は「初期値
が無い」ところをrefしたタイミングで例外を上げることにします。push!は、
その例外がきたときだけ値を ( ) でつつんで set!します。この実現方法であ
れば<hash-table>を含む初期値がない他のデータ型でもpush!でき、あたらしい
データ型を覚えずに済みます。

あるゆるpush!に例外をキャッチするための仕掛けを準備するステップが増える
のでもしかしたら問題となるかもしれませんが、新しいことを覚えずに済むのは
魅力に思います。

大和




Gauche-devel-jp メーリングリストの案内
Back to archive index