Katsutoshi Itoh
cut-s****@maste*****
2005年 2月 20日 (日) 22:18:09 JST
In message <20050****@lava*****>, Shiro Kawai writes: 一応 WiLiKi の OnLisp に書きましたが、 gensym をラップする 様にして内部で gensym したシンボルを保持するクロージャにして 使ってみまたところです。 ただ…そうか。hash 使った方が良かったですね。 > >Gaucheはinternされないシンボルを持たないので >偶然名前が衝突してしまう危険は避けられませんが。 > あれ、そう言えば名前の衝突って gauche native な gensym も 特に避けてくれる訳ではないんですね。 今試したら先回りして G39 とか用意してても (gensym) でも同じく G39 とか 生成するし、それでも事前に用意してたシンボルとは別なんですね。 まったく同じシンボルってわけでもないと。 gensym って名前衝突さけるんだと思ってたから gensym をラップして 使ってみたんですが、これなら Shiro さんが書かれたみたいに全部自前で 実装しても同じことですね。 gosh> (gensym) G38 gosh> (define G39 #f) G39 gosh> (define G40 #f) G40 gosh> (gensym) G39 gosh> (if (gensym) "new" "old") "new" gosh> (gensym) G41