e$B!!$5$5$@$G$9!%e(B
e$B!!$A$g$C$H$$$m$$$m:.$8$C$F$7$^$C$F$o$+$j$E$i$/$J$C$F$7$^$C$F$$$k$s$G$9e(B
e$B$,!$;d$,0lHVLdBj$K$7$?$+$C$?$N$O!Ve(BSymbol e$B$He(B String
e$B$N3F%*%V%8%’%/%H$,!$e(B
to_s e$B$7$?7k2L$,F1$8$G$"$C$?$H$-!$e(BHash
e$B$N%-!<$H$7$FF1$8$b$N$H$7$F07$o$l$ke(B
e$B$3$H!W$G$9!%e(BSymbol
e$B$,J8;zNs$N%a%=%C%I$r;}$D$N$O!$7k9=;?@.$G$9!%e(B
Yukihiro M. wrote:
|e$B!!$H$j$"$($:463PE*$K!V$"$j$($M!<!W$H;W$&$N$G!$$=$l$8$cM}M3$K$J$s$J$$$G$9e(B
|e$B$h$M$’!%e(B
e$B$=$&$G$9$M$(!#$H$j$"$($:e(BSmalltalke$B$G$O$3$&$J$C$F$^$9$7$M!#e(B
e$B!!e(BSmalltalk e$B$Ne(B Hash e$B$Oe(B Dictionary
e$B$G$7$?$C$1!%$=$l$,!$%7%s%%k$HJ8;zNs$re(B
e$BF1$8%-!<$H$7$F07$&!$$H$$$&$3$H$G$7$g$&$+!%e(B
|e$B!!e(BLisp e$B$J$s$+$G$O!$$3$NJU$C$F$I$&$J$s$G$7$g$&!%e(Beq*? e$B$J4X?t$G%7%s%%k$,F1e(B
|e$B$8CM$rJV$9$3$H$O$"$k$s$G$7$g$&$+!%e(B
ComminLispe$B$Oe(Bstring-*e$B$J4X?t$OJ8;zNs$b%7%s%%k$b<u$1IU$1$^$9$M!#e(B
e$B!!e(BCommonLisp e$B$Ge(B Hash
e$B$N$h$&$JB8:_$O2?$K$J$k$s$G$7$g$&!%e(B
e$B!!?t>/$J$$!$;d$NCN$C$F$$$ke(BLispe$B$@$He(BGauchee$B$,$"$k$s$G$9$,!$e(BGauche
e$B$@$H$3$Ne(B
e$B$h$&$J$b$N$OL5$$$h$&$G$9!%e(B
e$B!!$3$3$G$^$?OC$,JQ$o$j$^$9!%e(B
|e$B!!<B$O!$e(BSymbol e$B$KE}0l$9$k$N$,$$$$$s$8$c$J$$$+$H;W$C$F$*$j$^$7$?!%$3$N%3e(B
|e$B%s%F%-%9%H$G$Oe(B Symbol e$B$,JV$C$F$/$k;v$r$J$s$H$J$/4|BT$7$^$;$s$+!)!!e(BString
|e$B7O$N%a%=%C%I$O!$e(B:sym.to_s.foo e$B$NC;=L7A$H3P$($k$Y$-$G$7$g$&$+!%$G$b!$e(Bfoo
|e$B$,e(B String e$B7O$N%a%=%C%I$@$C$?$C$1!$$H3P$($k$N$,BgJQ$=$&$G$9!%e(B
|
|e$B!!$b$7!$$3$l$i$NM}M3$,!Ve(BSymbol e$B$Oe(B GC e$B$7$J$$$+$i!W$H$$$&$3$H$J$i!$e(BSymbol
|e$B$re(B GC e$B$9$k$h$&$K8!F$$7$F$_$k$N$O$I$&$G$7$g$&$+!JLy<X$+$b!K!%e(B
Symbole$B$re(BGCe$B$G$9$+!#$G$-$k$N$+$J!#e(B
e$B!!$^$:!$$^$D$b$H$5$sE*$K$O!$e(BSymbol#succ
e$B$J$I$GJ8;zNs$,JV$k$N$O!$LdBj$Je(B
e$B$$!$$=$&$"$k$Y$-!$$H$*9M$($J$s$G$7$g$&$+!%$=$l$H$b!$<BAu$NET9g$G$7$g$&$,e(B
e$B$J$/!$$J$s$G$7$g$&$+!%e(B
e$B!!$3$3$G$^$?OC$,JQ$o$j$^$9!%e(B
e$B$=$&$9$k$H!"e(B
rb_funcall(obj, ‘+’, obj2)
e$B$N$h$&$J$N$rA4Ite(B
rb_funcall(obj, rb_intern("+"), obj2)
e$B$KCV$-49$($J$$$H$$$1$^$;$s$M$(!#e(B
e$B!!$=$NNc$,$=$&$J$kM}M3$O$h$/$o$+$s$J$$$s$G$9$,!$e(BID e$B$He(B Symbol
e$B%*%V%8%’%/e(B
e$B%H$OJL$K9M$($i$l$J$$$G$7$g$&$+!%e(B
symbol_table:
e$B!!e(BID (C e$BJ8;zNse(B) => Symbol e$B%*%V%8%’%/%He(B
e$B!&e(Brb_intern()
e$B$,:n$k$b$N$O!V>C$7$A$c$$$1$J$$!We(BSymbole$B%%V%8%’%/%He(B
e$B!&e(BSymbol#succ
e$B$J$I$,:n$k$b$N$O!Ve(BGCe$B2DG=$J!We(BSymbole$B%%V%8%’%/%H!Je(BGCe$B;~$Ke(B
symbol_table e$B$+$i$=$NCM$r>C$9!Ke(B
e$B$3$H$G<B8=$G$-$k$s$G$O$J$$$+$H!Je(BGCe$B$N$?$a$K!$>C$7$A$c$$$1$J$$e(BSymbolTable
e$B$rJLES;}$C$F$b$$$$$+$b!Ke(B
e$B$J$I$H9M$($^$7$?!%e(B
e$B!!>C$7$A$c$$$1$J$$$N$Oe(B ID e$B$H$7$FMxMQ$5$l$k$b$N$J$s$G$9$+$i!%e(B
e$B!!$?$@!$e(B
id1 = :Sym.succ.object_id
GC.start
id2 = :Sym.succ.object_id
e$B$Ge(B id1 == id2
e$B$G$"$k$3$H$OJ]>Z$5$l$^$;$s$,e(B…e$B!%$3$l$G:$$k$3$H$O$"$k$s$@e(B
e$B$m$&$+!%e(B