[Gauche-devel-jp] 辞書とイテレータ

Back to archive index

Shiro Kawai shiro****@lava*****
2003年 1月 21日 (火) 03:22:18 JST


From: KOGURO Naoki <naoki****@kogur*****>
Subject: Re: [Gauche-devel-jp] 辞書とイテレータ
Date: Tue, 21 Jan 2003 00:49:57 +0900

> で、この cursor はどれだけ robust に作られるべきなのでしょうか。例えば、
> 以下の場合の動作はどうすべきでしょう? 
> (1) (cursor 'delete) を呼んだあとの (cursor 'get), (cursor 'update
> value), (cursor 'delete)
> (2) (cursor 'update value) を呼んだあとの (cursor 'get)
> (3) call-with-iterator の iteratee で、同じ dictionary に対して
> call-with-iterator を呼んだとき。 (内の iteratee で更新をかけてしまっ
> たときに外の iteratee からはどう見えるべきなのか?)

これは悩ましい。

(1)はエラー、(2)はvalueが返る、というのが自然なような気も
しますが、non-trivialな辞書オブジェクトの実装にどんな影響が
出るかぱっと思い付きません。仮決めしておいて、色々な実装が
揃うのを待つのがいいかな。

(3)は、ネストする場合は非破壊的操作のみ保証する、でいいと
思うのですが、イテレータ実装者がどこまで検出すべきかというのは
検討課題ですね。call-with-iteratorがDBサーバにつないで
そのdynamic extentの間をtransactionとするってな場合なんかは
ネストは検出しないとまずいでしょう。しかし、全ての場合において
ネストの検出を要求すべきかどうかはまだ判断つきかねます。

徐々に実装を書いてみながら煮つめて行っても良いとは思います。

--shiro




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