Shiro Kawai
shiro****@lava*****
2003年 1月 18日 (土) 21:53:32 JST
<dictionary>フレームワークの方は別にリプライします。 とりいそぎこいつだけ。 From: Kimura Fuyuki <fuyuk****@hadal*****> Subject: [Gauche-devel-jp] 辞書とイテレータ Date: Sat, 18 Jan 2003 20:25:55 +0900 > あと、slot-push! の説明がちょっと嘘っぽいです(except > がexceptじゃないような)。 ここですね。 It is equivalent to the following code (except @var{obj} and @var{slot} is not evaluated twice, of course). (slot-set! @var{obj} @var{slot} (cons @var{value} (slot-ref @var{obj} @var{slot}))) ええとこれは、 「(slot-push! OBJ SLOT VALUE) というのは上記のコードと 等価(=置き換え可能)だよ」と書いてしまうと、 (slot-push! (hoge foo) (hage bar) value) というコードと (slot-set! (hoge foo) (hage bar) (cons value (slot-ref (hoge foo) (hage bar)))) が等価だということになってしまうので、ちょっと不正確かなと 思って、「OBJとVALUEの所は1度しか評価されないけどね」と 書き足したんですが、何やらわかりにくいですね。 素直に定義を示す方がわかりやすいかもしれませんね。 (define (slot-push! obj slot value) (slot-set! obj slot (cons value (slot-ref obj slot)))) --shiro