Discussion:
[ruby-list:43857] Hashへの生成順は保障されないのか?
Hiroshi Kasamatsu
2007-08-18 13:44:54 UTC
Permalink
$B$3$s$K$A$O!"3^>>$H?=$7$^$9!#(B
vine linux 4.1$B$G(Bruby1.8.5(rpm$B%Q%C%1!<%8HG(B)$B$r;H$C$F$$$^$9!#(B

$B<!$N$h$&$J(BHash$B$***@8@.$7$?$H$7$^$9!#(B
pair=Hash.new
pair["apple"]="apple"
pair["and"]="and"
pair["bee"]="bee"
pair["cat"]="cat"

$B$3$N(Bhash$B$rI=<($7$?$i(B
apple=>apple
and=>and
bee=>bee
cat=>cat
$B$N$h$&$***@8@.=g$r4|BT$7$F$$$?$N$G$9$,!"(B

pair.each do |key, val|
print key, "=>", val, "\n"
end
$B$GI=<($5$;$k$H!"(B
cat=>cat
and=>and
bee=>bee
apple=>apple
$B$N=g$K$J$C$F$7$^$$$^$7$?!#$G$-$l$***@8@.$7$F$$$C$?=g$G(B
$BI=<($5$l$k$H$h$$$N$G$9$,!"(Bhash$B$NCf?H$O$I$N$h$&$J4p=`$G(B
$BJB$Y$i$l$F$$$k$N$G$7$g$&$+!)(B
$B$465<x$NDx!"$h$m$7$/$*4j$$$$$?$7$^$9!#(B
Urabe Shyouhei
2007-08-18 13:59:06 UTC
Permalink
Post by Hiroshi Kasamatsu
$BI=<($5$l$k$H$h$$$N$G$9$,!"(Bhash$B$NCf?H$O$I$N$h$&$J4p=`$G(B
$BJB$Y$i$l$F$$$k$N$G$7$g$&$+!)(B
$B$&!<$s!"(BHash$B$O$=$NL>A0$N$H$*$j(BHash$B$G$9!#(B
$B$b$&$A$g$C$H6qBNE*$K$$$&$H30ItO":?%O%C%7%e$G$9!#(B

$B%O%C%7%e$,$I$N$h$&$J;EAH$_$K$J$C$F$$$k$+$O$A$g$C$H$3$N(BML
$B$N<q;]$+$i$O30$l$k$h$&$J5$$,$9$k$N$GE,59%G!<%?9=B$$N652J(B
$B=q$r$4Mw$K$J$k$3$H$J$I$r$*$9$9$a$7$^$9$,!"(BHash$B$H$$$&L>A0(B
$B$N%/%i%9$G$J$s$i$+$N=g=x$N$h$&$J$b$N$,J]B8$5$l$k4|BT$rJz(B
$B$+$l$k$H$$$&H/A[$O;B?7$G$7$?!#$I$N$h$&$JJ8L.$+$i$=$N$h$&(B
$B$K;W$o$l$?$N$+!"8e3X$N$?$a$K65$($F$$$?$@$1$^$9$+(B?
Hiroshi Kasamatsu
2007-08-19 14:49:30 UTC
Permalink
$B3'$5$s!"AaB.$N%l%9$"$j$,$H$&$4$6$$$^$9!#(B
$B3^>>$G$9!#(BUrabe$B$5$s$N8f;XE&DL$j(BHash$B$K=g=x$^$G4|BT$9$k$N$O(B
Hash$B$N<q;]$+$i$7$FL5M}$,$"$k$N$+$b$7$l$^$;$s!#(B
$B$?$@7k2L$NI=<($***@8@.$7$F$$$C$?=g$,;d$K$H$C$FI,MW$J$N$G!"(B
Yugui$B$5$s!"Fb;3$5$s!"Eh$5$s$N%"%I%P%$%9!";29M$K$5$;$F(B
$BD:$-$?$$$H;W$$$^$9!#(B

$B$H$3$m$G!"(BUrabe$B$5$s$N<!$N8f;XE&$G$9$,!"(B
Post by Urabe Shyouhei
$B%O%C%7%e$,$I$N$h$&$J;EAH$_$K$J$C$F$$$k$+$O$A$g$C$H$3$N(BML
$B$N<q;]$+$i$O30$l$k$h$&$J5$$,$9$k$N$GE,59%G!<%?9=B$$N652J(B
$B=q$r$4Mw$K$J$k$3$H$J$I$r$*$9$9$a$7$^$9$,!"(BHash$B$H$$$&L>A0(B
$B$N%/%i%9$G$J$s$i$+$N=g=x$N$h$&$J$b$N$,J]B8$5$l$k4|BT$rJz(B
$B$+$l$k$H$$$&H/A[$O;B?7$G$7$?!#$I$N$h$&$JJ8L.$+$i$=$N$h$&(B
$B:#!"%?%C%A%?%$%W$NN}=,%W%m%0%i%`$r:n$C$F$$$k$H$3$m$G!"(B
$BC18l$rI=<($5$;$F$=$l$r%?%C%A%?%$%W$7$^$9!#(B
$BI=<($5$l$?C18l$r(Bkey,$B%?%$%W$5$l$?J8;zNs$r(Bval$B$H$7$F(B
hash$B$K3JG<$7$^$9!#=*N;8e!"7k2L$rI=<($5$;$F(B
$B$&$^$/BG$F$?$+$r8+$k$o$1$G$9$,!"=PMh$l$P%?%$%W$7$F$$$C$?(B
$B=g$KI=<($5$l$?J}$,$h$/3P$($F$$$k$7%U%#!<%I%P%C%/$5$l$d$9$$$H(B
$B$$$C$??4M}E*$J$b$N$G$9!#7k2L$N%(%i!<J,@O$@$1$H$$$&$N$G$"$l$P!"(B
$BFCJL=gHV$J$I$OI,MW$G$O$J$/!"I=<(C18l$H%?%$%W$5$l$?7k2L$N4X78(B
$B$@$1$G$h$$$+$H;W$$$^$9!#(B

$B:G8e$K!"%?%$%H%k$NJ]>c$OJ]>Z$G$9$h$M!"$*CQ$:$+$7$$$G$9!#(B
Urabe Shyouhei
2007-08-19 19:43:12 UTC
Permalink
Post by Hiroshi Kasamatsu
$B:#!"%?%C%A%?%$%W$NN}=,%W%m%0%i%`$r:n$C$F$$$k$H$3$m$G!"(B
$BC18l$rI=<($5$;$F$=$l$r%?%C%A%?%$%W$7$^$9!#(B
$BI=<($5$l$?C18l$r(Bkey,$B%?%$%W$5$l$?J8;zNs$r(Bval$B$H$7$F(B
hash$B$K3JG<$7$^$9!#=*N;8e!"7k2L$rI=<($5$;$F(B
$B$&$^$/BG$F$?$+$r8+$k$o$1$G$9$,!"=PMh$l$P%?%$%W$7$F$$$C$?(B
$B=g$KI=<($5$l$?J}$,$h$/3P$($F$$$k$7%U%#!<%I%P%C%/$5$l$d$9$$$H(B
$BFCJL=gHV$J$I$OI,MW$G$O$J$/!"I=<(C18l$H%?%$%W$5$l$?7k2L$N4X78(B
$B$3$l$@$1$N>pJs$+$i$O$J$<$o$6$o$6(BHash$B$r;H$o$l$k$N$+$,8+$($F$-$^$;$s!#(B
$B$?$H$($P(B[[key1, val1], [key2, val2], ...]$B$G$b==J,$KLrL\$r2L$?$9$G$7$g$&!#(B
$B$J$<$o$6$o$6(BHash$B$J$s$G$9$+$M(B?
Hiroshi Kasamatsu
2007-08-20 15:34:29 UTC
Permalink
Urabe$B$5$s!"3^>>$G$9!#%l%9$"$j$,$H$&$4$6$$$^$9!#(B
Post by Urabe Shyouhei
$B$?$H$($P(B[[key1, val1], [key2, val2], ...]$B$G$b==J,$KLrL\$r2L$?$9$G$7$g$&!#(B
$B$J$<$o$6$o$6(BHash$B$J$s$G$9$+$M(B?
$B$=$&8@$o$l$F$_$l$P!"$=$&$G$9$M!#$Q$C$H;W$$Ib$+$s$@$N$,(B
Hash$B$@$C$?$N$G!"(BHash$B$r;H$$$^$7$?!#(B
Urabe Shyouhei
2007-08-20 18:17:16 UTC
Permalink
Post by Urabe Shyouhei
$B$?$H$($P(B[[key1, val1], [key2, val2], ...]$B$G$b==J,$KLrL\$r2L$?$9$G$7$g$&!#(B
$B$J$<$o$6$o$6(BHash$B$J$s$G$9$+$M(B?
$B$b$A$m$s%W%m%0%i%^$G$9$+$i<+J,$ND>4Q$r?.$8$k$3$H$O=EMW$G$9!#(B
$B$1$l$I!"$Q$C$H(BHash$B$,;W$$Ib$+$s$@$+$i$C$F(BHash$B$r;H$C$F$=$3$G(B
$***@8@.=g$,J]B8$5$l$J$$$N$rC2$+$l$k$N$O6Z$,0c$&$G$7$g$&!#(B

$BBg3X$J$I$G%"%k%4%j%:%`4pACO@$r3X$Y$P??$***@h$K65$o$k$N$,!VE,(B
$***@Z$J%"%k%4%j%:%`$HE,@Z$J%G!<%?9=B$$O$I$A$i$,7g$1$F$b%@%a!W(B
$B$H$$$&OC$J$O$:$G$9!#E,@Z$J%G!<%?9=B$$,2?$+$r$b$&$A$g$C$HD4(B
$B::$7$F$+$i=q$+$l$?J}$,$h$+$C$?5$$,$7$F$J$j$^$;$s!#(B
cuzic
2007-08-20 18:45:25 UTC
Permalink
cuzic $B$G$9!#(B

$B2#%l%9$G$9$,!&!&!&(B
Hash $B$***@8@.=g$,J]B8$5$l$J$$7o$G$9$,!"(BPHP $B=P?H$G(B Ruby $B$r(B
$B;O$a$?J}$O$h$/4*0c$$$9$k2U=j$N$h$&$K;W$$$^$9!#(B
$B3^>>$5$s$,(B PHP $B=P?H$+$I$&$+$OJ,$+$j$^$;$s$,!#!#(B

PHP $B$G$O=g=x$,J]B8$5$l$k$N$G$9!#(B

$ php
<?php

$a = array();
$a["ruby"] = 1;
$a["perl"] = 2;
$a["java"] = 3;
$a["haskell"] = 4;
foreach($a as $key => $value){
print $key . " " . $value . "\n";
}
?>
^D
ruby 1
perl 2
java 3
haskell 4

$B$G$O$G$O!#(B
Urabe Shyouhei
2007-08-20 19:12:53 UTC
Permalink
Post by cuzic
PHP $B$G$O=g=x$,J]B8$5$l$k$N$G$9!#(B
$ php
<?php
$a = array();
$B$3$N9T$+$i$bJ,$+$k$H$*$j(BPHP$B$N$"$l$O(BArray$B$J$N$G$9!#(B
var_dump($a);$B$9$k$H$A$c$s$H(Barray(4)$B$H=P$F$-$^$9$h!#(B
Array$B$H$$$&%/%i%9$N%*%V%8%'%/%H$G=g=x$,J]B8$5$l$F$$$k(B
$B$3$H$K$O2?$i5?Ld$r$O$5$`M>CO$,$J$$$N$OJ,$+$j$^$9!#(B

$BK]$C$F(BRuby$B$G$O(BArray$B$H(BHash$B$OJL7z$F$N%/%i%9$J$N$O8@$&$^(B
$B$G$b$"$j$^$;$s!#$b$A$m$s(BArray$B$H(BHash$B$,J,$+$l$F$$$k$3$H(B
$B$K$O$A$c$s$***@_7W>e$N0UL#$,$"$j$^$9!#(B
$B!V$o$6$o$6(BHash$B$H$$$&L>A0$,IU$1$i$l$F(BArray$B$H$O87L)$K6h(B
$BJL$5$l$F$$$k%/%i%9!W$KBP$7$F=g=x$NJ]B8$r4|BT$9$k$H$$(B
$B$&$=$N463P$,$^$@M}2r$G$-$^$;$s!#$J$s$G$J$s$G$9$+!#(B
Tanaka Akira
2007-08-20 19:18:57 UTC
Permalink
Post by Urabe Shyouhei
$B$G$b$"$j$^$;$s!#$b$A$m$s(BArray$B$H(BHash$B$,J,$+$l$F$$$k$3$H(B
$B$I$s$J0UL#$G$7$g$&(B?
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
Urabe Shyouhei
2007-08-20 20:31:59 UTC
Permalink
$B$*$*!"EDCf$5$s$rK~B-$5$;$***@bL@$C$F$N$O7k9=%O!<%I%k9b$=$&$@$J!#(B

$B$($($H!"4pK\E*$K(BRuby$B$N%/%i%93,AX$H$$$&$N$O?6Iq$$$,;w$F$k$+$i(B
$B$H$$$&M}M3$@$1$G%5%V%/%i%9$K$7$?$jC10l$N%/%i%9$KE}9g$7$?$j$O(B
$B$7$J$$$h$&$KJ,$1$i$l$F$$$k$O$:$G$9!#$J$s$G$+$H$$$&$H?6Iq$$$O(B
module$B$H$7$F<h$j=P$9$3$H$,$G$-$k$+$i$G$9!#$?$H$($P(BString$B$H(B
Array$B$O(BC$B%l%Y%k$G$O$[$H$s$IF1$8(B($BG[Ns$N$J$+$_$,(Bchar$B$+(BVALUE$B$+$/(B
$B$i$$$7$+0c$o$J$$(B)$B$G$9$,!"$=$l$i$N6&DL$N?6Iq$$$O(BEnumerable$B$K(B
$B$4$C$=$jJ,N%$5$l$F$$$k$?$a!"(BRuby$B%l%Y%k$G$O(BString < Array$B$K(B
$B$J$C$?$j$b$;$:!"$"$k$$$O(BString$B$,(BArray$B$K5[<}$5$l$k$3$H$b$J$/!"(B
$B40A4$K4X78$J$$%/%i%9$H$7$F$=$l$>$lB8:_$7$F$$$k$o$1$G$9$M!#(B
$B$G!"(BArray$B$H(BHash$B$C$F$N$O?6Iq$$$,>/!9;w$F$$$k0J>e$N6&DLE@$O$J(B
$B$$$o$1$G$9!#$D$^$j!"E}9g$9$kM}M3$,$J$$!#(BRuby$B$N@$3&4Q$K$*$$$F(B
Array$B$N$h$&$J5!G=$H(BHash$B$N$h$&$J5!G=$rN>J}Ds6!$9$k$3$H$K$7$?(B
$B>l9g$K!"!V$9$Y$F$,%*%V%8%'%/%H!W$H$$$&86B'$+$i9M$($F$b%/%i%9(B
$B$r:n$i$J$$J}?K$O$"$j$($:!"$+$H$$$C$F>e5-$N$h$&$K$=$l$i$rE}9g(B
$B$9$k$N$O$*$+$7$$$N$G!"7k6I8=>u$N$h$&$K$=$l$>$lJL$N%/%i%9$K$J(B
$B$k$H$$$&$N$,0lHV<+A3$G$"$k$Y$-;Q$N$O$:$G$9!#(B

$B$^$H$a$k$H0c$&$b$N$O0c$&$b$N$H$7$F$-$A$s$H0c$&%/%i%9$K$9$k$N(B
$B$,(BRuby$B$N%/%i%93,AX$***@_7W$N$O$:!#(BArray$B$H(BHash$B$,J,$+$l$F$k0UL#(B
$B$O(BArray$B$H(BHash$B$,0c$&$b$N$@$+$i$G$7$g$&!#(B
Tanaka Akira
2007-08-20 21:05:56 UTC
Permalink
Post by Urabe Shyouhei
$B$($($H!"4pK\E*$K(BRuby$B$N%/%i%93,AX$H$$$&$N$O?6Iq$$$,;w$F$k$+$i(B
$B$7$J$$$h$&$KJ,$1$i$l$F$$$k$O$:$G$9!#$J$s$G$+$H$$$&$H?6Iq$$$O(B
module$B$H$7$F<h$j=P$9$3$H$,$G$-$k$+$i$G$9!#$?$H$($P(BString$B$H(B
Array$B$O(BC$B%l%Y%k$G$O$[$H$s$IF1$8(B($BG[Ns$N$J$+$_$,(Bchar$B$+(BVALUE$B$+$/(B
$B$i$$$7$+0c$o$J$$(B)$B$G$9$,!"$=$l$i$N6&DL$N?6Iq$$$O(BEnumerable$B$K(B
$B$4$C$=$jJ,N%$5$l$F$$$k$?$a!"(BRuby$B%l%Y%k$G$O(BString < Array$B$K(B
$B$J$C$?$j$b$;$:!"$"$k$$$O(BString$B$,(BArray$B$K5[<}$5$l$k$3$H$b$J$/!"(B
$B40A4$K4X78$J$$%/%i%9$H$7$F$=$l$>$lB8:_$7$F$$$k$o$1$G$9$M!#(B
module $B$K$h$j!"%/%i%9$r4XO"$E$1$kJ}8~IU$1$,<e$/$J$C$F$$$k$N(B
$B$O$=$&$G$7$g$&!#(B
$BE}9g$9$kM}M3$,$J$$$+$i$H$$$C$F!"E}9g$7$J$$M}M3$,$"$k$3$H$K$O(B
$B$J$i$J$$$G$7$g$&!#(B
Post by Urabe Shyouhei
Array$B$N$h$&$J5!G=$H(BHash$B$N$h$&$J5!G=$rN>J}Ds6!$9$k$3$H$K$7$?(B
$B>l9g$K!"!V$9$Y$F$,%*%V%8%'%/%H!W$H$$$&86B'$+$i9M$($F$b%/%i%9(B
$B$r:n$i$J$$J}?K$O$"$j$($:!"$+$H$$$C$F>e5-$N$h$&$K$=$l$i$rE}9g(B
$B$9$k$N$O$*$+$7$$$N$G!"7k6I8=>u$N$h$&$K$=$l$>$lJL$N%/%i%9$K$J(B
$B$k$H$$$&$N$,0lHV<+A3$G$"$k$Y$-;Q$N$O$:$G$9!#(B
$BE}9g$9$kM}M3$,$J$$!"$H$$$&$3$H$+$iE}9g$9$k$N$,$*$+$7$$$H$$$&(B
$B$3$H$OF3$1$^$;$s!#E}9g$9$kM}M3$,$J$$$H$7$F$b!"E}9g$7$J$$M}M3(B
$B$b$J$$$+$b$7$l$J$$$+$i$G$9!#(B
Post by Urabe Shyouhei
$B$^$H$a$k$H0c$&$b$N$O0c$&$b$N$H$7$F$-$A$s$H0c$&%/%i%9$K$9$k$N(B
$B0c$&$b$N$r0c$&%/%i%9$K$9$k$N$O$b$C$H$b$J$3$H$G$9!#LdBj$O!"(B
Array $B$H(B Hash $B$,$I$&0c$&$+!"$G$9!#(B

$B!V?6Iq$$$,>/!9;w$F$$$k!W$H$N$3$H$G$9$,!";w$F$$$kE@$G$O$J$/$F!"(B
$B0c$&E@!&AjMF$l$J$$E@$K$D$$$F6qBNE*$K<gD%$7$F$$$?$@$1$J$$$G$7$g(B
$B$&$+!#(B

$B$A$J$_$K!";d$O!"(BRuby $B$G(B Array $B$H(B Hash $B$,$o$+$l$F$$$k$N$O!"(B
Perl $B$,$=$&$@$C$?$+$i$@$H21B,$7$F$$$^$9!#(B
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
Urabe Shyouhei
2007-08-21 00:48:41 UTC
Permalink
$B$&!<$s!"$d$C$Q$j$+!#(B
Post by Tanaka Akira
$BE}9g$9$kM}M3$,$J$$$+$i$H$$$C$F!"E}9g$7$J$$M}M3$,$"$k$3$H$K$O(B
$B$J$i$J$$$G$7$g$&!#(B
$B$=$&$G$9$+(B?
Array$B$H(BHash$B$OJL$NL>A0$,$D$$$F$$$kJL$N%G!<%?9=B$$G$9$M!#$=$l(B
$B$i$N4V$KE}9g$9$kM}M3$,L5$$$N$G!"E}9g$7$J$$$H$$$&$@$1$@$H;W$&(B
$B$N$G$9$,!#(B
Post by Tanaka Akira
$BE}9g$9$kM}M3$,$J$$!"$H$$$&$3$H$+$iE}9g$9$k$N$,$*$+$7$$$H$$$&(B
$B$3$H$OF3$1$^$;$s!#E}9g$9$kM}M3$,$J$$$H$7$F$b!"E}9g$7$J$$M}M3(B
$B$b$J$$$+$b$7$l$J$$$+$i$G$9!#(B
$BE}9g$9$kM}M3$,$J$/$FE}9g$7$J$$M}M3$b$J$$$h$&$J$b$N$OIaDL!"E}(B
Post by Tanaka Akira
$B0c$&$b$N$r0c$&%/%i%9$K$9$k$N$O$b$C$H$b$J$3$H$G$9!#LdBj$O!"(B
Array $B$H(B Hash $B$,$I$&0c$&$+!"$G$9!#(B
$B$&$+!#(B
$B$?$H$($P(BArray$B$N%$%s%9%?%s%9(Ba$B$H(BHash$B$N%$%s%9%?%s%9(Bh$B$,$"$k$H$9(B
$B$k$H!"(B

a[x] (x >= 0)

$B$,B8:_$9$l$P!">/$J$/$H$b(Ba[0]$B$+$i(Ba[x]$B$^$G$N%*%V%8%'%/%H$OB8:_(B
$B$r2>Dj$7$F$h$$$O$:$G$9!#$H$3$m$,(Bh[x]$B$,B8:_$7$F$b$=$s$J2>Dj$O(B
$B$*$1$J$$!#$3$NE@$O0c$$$^$9$h$M!#(B

$B$"$k$$$O$?$H$($P(Beach$B$N%V%m%C%/0z?t$,$$$^$@$H(BHash$B$H(BArray$B$G$O(B
$B0[$J$C$F$$$k$o$1$G$9$,!"E}9g$9$k$H$J$k$H$I$A$i$K9g$o$;$k$Y$-(B
$B$+$OG:$^$7$$$H$3$m$G$7$g$&!#(Beach_with_index$B$O(BHash#each$B$H$O5s(B
$BF0$,0c$&$7!#$3$NE@$***@3N$KAjMF$l$J$$$H8@$($^$9!#(B

$B$^$"!"(B
Post by Tanaka Akira
$B$A$J$_$K!";d$O!"(BRuby $B$G(B Array $B$H(B Hash $B$,$o$+$l$F$$$k$N$O!"(B
$B$3$NM}M3$O$+$J$j$"$j$=$&$G$9$h$M!#$=$3$O$[$s$N$j$HF10U!#(B
しん
2007-08-20 22:35:43 UTC
Permalink
# $B=PCY$l$?$N$G!"%l%9$9$Y$-%a!<%k$,H=$i$J$/$J$C$F$7$^$C$?$N$G!"<j6a$J$N$K(B

Hash $B$G=g=x$rJ]B8$7$F$/$l$k$H4r$7$$$3$H$O$"$j$^$9!#(B
$B$b$H$b$H(B Key $B$G%=!<%H$5$l$F$k%G!<%?$r(BHash$B$K<h$j$3$s$G(B
$B<-=q$H$$$&$+JQ49%F!<%V%k$H8@$&$+$K$7$F$*$-!"(B
$B=q$-=P$7$b(BKey$B$G%=!<%H$7$F$@$7$?$$(B $B$H$$$&;v$ONI$/$"$j$^$9!#(B

hash.each_key.sort.each{|key| } $B$H$+$7$F$^$9$,!"(B
hash.each{} $B$G$=$l$,$G$-$l$P$9$C$-$j$7$^$9!#(B

$B:$$k$N$O(B Key$B$N(Bsort$B$,C1=c$JHf3S$G$O$J$$$H$-!"(B
$B$?$H$($P;Y<RL>$rKL$NJ}$+$i$H$+AH?%?^$N=g$K$H$+8@$&>l9g$G$9!#(B
$B=PNO=g$KJB$s$@(B $B;Y<RL>$N(BArray $B$rMQ0U$9$k$J$I!"K\<A$G$O$J$$$H$3$m$G(B
$B6lO+$9$k$3$H$K!#(B

$B=g=x$rJ]B8$7$F$7$^$&$H:$$C$?$3$H$,5/$-$k$+$I$&$+$O9M$($F$$$^$;$s$,(B
$***@T?qH?<ME*$K$O!V=g=x$rJ]>Z$5$l$F$$$J$$$G;H$C$F$k$s$@$+$i!"(B
$B:#$+$***@8@.=g$,J]>Z$5$l$F$b:$$k$3$H$O$J$5$=$&!#(B

$B=PBt(B
Yukihiro Matsumoto
2007-08-20 22:46:20 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43878] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Tue, 21 Aug 2007 07:35:43 +0900, $B$7$s(B <dezawa-eY1vtc/***@public.gmane.org> writes:

|Hash $B$G=g=x$rJ]B8$7$F$/$l$k$H4r$7$$$3$H$O$"$j$^$9!#(B

$B$=$l$OJ,$+$j$^$9!#(B

$B<B$O;d<+?H$O(BHash$B$N=g=x$NJ]B8$K$D$$$F$***@Q6KE*$KH?BP$7$F$$$k$o(B
$B$1$G$O$J$$$N$G$9!#$7$+$7!"(B

* $B0lHLE*$K$O(BHash$B$N=g=x$,J]B8$5$l$J$$(B
* $B$I$N=g=x$,:GE,$+$O<B$O0l0U$K7h$^$i$J$$(B($B$h$&$J5$$,$9$k(B)
* $B=g=x$NJ]B8$K$h$C$F(BHash$B$N8zN($,2<$,$k$N$O$&$l$7$/$J$$(B

$B$H$$$&$h$&$JM}M3$K$h$j<j$D$+$:$G$9!#(B
しん
2007-08-20 22:55:24 UTC
Permalink
$B$3$l$O$^$?$9$P$d$$%l%9$r!#(B
Post by Yukihiro Matsumoto
* $B$I$N=g=x$,:GE,$+$O<B$O0l0U$K7h$^$i$J$$(B($B$h$&$J5$$,$9$k(B)
$B$&$`!"!"!"!"(B
Post by Yukihiro Matsumoto
* $B=g=x$NJ]B8$K$h$C$F(BHash$B$N8zN($,2<$,$k$N$O$&$l$7$/$J$$(B
$B$O$$!"(B
$B;d$b$=$&;W$$$^$9!#(B

$B!V=g=x$,J]>Z$5$l$k$H4r$7$$$3$H$O$"$k!W(B
$B$H$$$&;vNc$r<($7$O$7$F$^$9$,!"$7$FM_$7$$$H$$$&6/$$$*$M$,$$$,(B
$B$"$k$o$1$G$O$"$j$^$;$s!#(B
$B=PBt(B
pegacorn
2007-08-21 00:23:42 UTC
Permalink
# $B$I$l$K$V$i2<$2$k$N$,NI$$$N$+$h$/$o$+$i$J$/$J$C$F$7$^$$$^$7$?$,!D(B

From: Yukihiro Matsumoto <matz-X+L+***@public.gmane.org>
Date: Tue, 21 Aug 2007 07:46:20 +0900
Message-Id: <E1ING0v-0006do-***@x31>
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post by Yukihiro Matsumoto
$B$1$G$O$J$$$N$G$9!#$7$+$7!"(B
* $B0lHLE*$K$O(BHash$B$N=g=x$,J]B8$5$l$J$$(B
* $B$I$N=g=x$,:GE,$+$O<B$O0l0U$K7h$^$i$J$$(B($B$h$&$J5$$,$9$k(B)
* $B=g=x$NJ]B8$K$h$C$F(BHash$B$N8zN($,2<$,$k$N$O$&$l$7$/$J$$(B
$B$H$$$&$h$&$JM}M3$K$h$j<j$D$+$:$G$9!#(B
$B%$%s%?!<%U%'%$%9$H%"%k%4%j%:%`!J<BAu!K$NOC$,!"$4$C$A$c$K$J$C$F$$$k(B
$B$h$&$J5$$,$7$^$9!#(B

$B3'$5$s$,6&DL$7$FM_$7$,$C$F$$$k$N$O!"(BMap $B$H$+(B Dictionary $B$H(B
$B8F$P$l$F$$$k!J!)!K$h$&$J%3%s%F%J!<!J%$%s%?!<%U%'%$%9!K$G$O(B
$B$J$$$G$7$g$&$+!)(B

$BNc(B.
foo[key] = value

$B$G!"(B
$B!&=g=x(B
$B!&8!:wB.EY(B
$BEy$OMQES$K$h$C$FMW5a$,0[$J$k$H;W$$$^$9!#(B

$B=>$C$F!"8=:_$N(B Hash $B$K<j$r2C$($k$N$G$O$J$/!"(B
$BMQES$K$h$C$FMW5a$,0[$J$kItJ,$r;XDj$G$-$k=@Fp$J%3%s%F%J!<%/%i%9$r(B
$B:n$k$N$,NI$$$H;W$$$^$9!#(B

# C++ $B$NK\$G$9$1$I!"(BModern C++ Design $B$N!V%]%j%7!<$r4p$K$7$?%/%i%9!&%G%6%$%s!W(B
# $B$,;29M$K$J$k$H;W$$$^$9!#(B


--
pegacorn
tachibana
2007-08-21 01:17:01 UTC
Permalink
Post by pegacorn
$B3'$5$s$,6&DL$7$FM_$7$,$C$F$$$k$N$O!"(BMap $B$H$+(B Dictionary $B$H(B
$B8F$P$l$F$$$k!J!)!K$h$&$J%3%s%F%J!<!J%$%s%?!<%U%'%$%9!K$G$O(B
$B$J$$$G$7$g$&$+!)(B
$B!V(BHash$BE*$J%"%/%;%9!W$H$$$&%$%s%?!<%U%'!<%9$NAm>N$H$7$F$O(B
"Map"$B$"$?$j$,:GE,$+$J$!$H;d$O;W$C$?$j$7$^$9!#(B
$B:#OCBj$K$J$C$F$$$k%d%D$O(B"ArrayMap"$B$H$+(B"OrderedMap"$B$H$+8F$S$?$$$G$9$M!#(B

$BI8=`$GF~$C$F$J$$?'$s$J%G!<%?9=B$$r0l3g$7$F$V$A9~$s$@%i%$%V%i%j$,(B
$B%G%U%!%/%H%9%?%s%@!<%I$H$7$FB8:_$7$F$l$P!"(B
$B!V$"$"!"$=$NL\E*$J$i(BHash$B$8$c$J$/$F(BOrderdMap$B$,:GE,$@$M!#(B
$B!!$3$N%i%$%V%i%j$,M-L>$@$+$i%$%s%9%H!<%k$7$F;H$&$HNI$$!#(B
$B!!$"$H!"(BHash$B$d%G!<%?9=B$0lHL$K$D$$$F$O(B
$B!!$b!<$A$g$$CN$C$F$*$$$?J}$,$$$$$H;W$&$h!W(B
$B$G$"$C$5$j:Q$s$G$$$?$h$&$J5$$b!#(B
Java$B$G8@$&(Bjakarta$B$N(Bcommons-lang$B$N%N%j$G!#(B

# $B$J$K$2$K=iEj9F$@$C$?$j$G!"$h$m$7$/$*4j$$$7$^$9!#(B
# $BIaCJ$O(BJava$B20$G$7$F!"(BRuby$B$N@:?@$dA0Ds$NCN<1$J$I$r(B
# $B2r$5$LH/8@$r$7$G$+$7$F$7$^$$$^$7$?$i?=$7Lu$"$j$^$;$s!D!D!#(B

/++
+ @from tachibana (deadzone-***@public.gmane.org)
+/
Nobuyoshi Nakada
2007-08-21 01:43:25 UTC
Permalink
$B$J$+$@$G$9!#(B

At Tue, 21 Aug 2007 07:46:20 +0900,
Post by Yukihiro Matsumoto
$B$1$G$O$J$$$N$G$9!#$7$+$7!"(B
* $B0lHLE*$K$O(BHash$B$N=g=x$,J]B8$5$l$J$$(B
* $B$I$N=g=x$,:GE,$+$O<B$O0l0U$K7h$^$i$J$$(B($B$h$&$J5$$,$9$k(B)
$B!V$I$N=g=x!W$HA*$Y$k$[$IA*Br;h$O$J$$$h$&$J5$$,$9$k$N$G$9$,!#(B
Post by Yukihiro Matsumoto
* $B=g=x$NJ]B8$K$h$C$F(BHash$B$N8zN($,2<$,$k$N$O$&$l$7$/$J$$(B
[ruby-dev:24569]$B$r(B1.9$B:G?7MQ$KD>$7$F!"(BHal Fulton$B$+$iAw$i$l$F$-$?(B
$B%Y%s%A%^!<%/$r;n$7$F$_$^$7$?!#(B

http://www.rubyist.net/~nobu/ruby/ordered-hash-1.9.diff
http://www.rubyist.net/~nobu/ruby/ordered-hash-1.8.diff

$BM=A[DL$j(Bdelete$B$,$d$dCY$/$J$C$F$$$^$9$,!";W$C$?$[$I$N1F6A$O$J$$$h(B
$B$&$G$9!#5U$K(Beach$B$d(Bsort_by$B$,B.$/$J$C$F$$$k$N$O!"Fs=EG[Ns$+$iC1=c(B
$B$J(Bdouble linked list$B$r$?$I$k$h$&$K$J$C$F$$$k$N$,Bg$-$$$N$+$b$7$l(B
$B$^$;$s!#(B

$BA0(B
add to empty hash 0.650000 0.010000 0.660000 ( 0.654691)
add to hash with 100000 elements 0.710000 0.020000 0.730000 ( 0.730761)
each_key with 200000 elements 0.050000 0.000000 0.050000 ( 0.053228)
keys.sort_by.each, 200000 elements 1.150000 0.000000 1.150000 ( 1.159369)
delete 100000 times, non-existing key 0.040000 0.000000 0.040000 ( 0.034815)
delete 100000 times, existing keys 0.260000 0.000000 0.260000 ( 0.256023)
include? 100000 times, non-existing key 0.050000 0.000000 0.050000 ( 0.046105)
include? 100000 times, existing keys 0.230000 0.000000 0.230000 ( 0.225641)
clear hash with 100000 elements 0.030000 0.000000 0.030000 ( 0.037633)

$B8e(B
user system total real
add to empty hash 0.550000 0.020000 0.570000 ( 0.558828)
add to hash with 100000 elements 0.620000 0.010000 0.630000 ( 0.636749)
each_key with 200000 elements 0.040000 0.000000 0.040000 ( 0.043783)
keys.sort_by.each, 200000 elements 0.270000 0.010000 0.280000 ( 0.276364)
delete 100000 times, non-existing key 0.030000 0.000000 0.030000 ( 0.035522)
delete 100000 times, existing keys 0.270000 0.000000 0.270000 ( 0.265942)
include? 100000 times, non-existing key 0.030000 0.000000 0.030000 ( 0.028704)
include? 100000 times, existing keys 0.190000 0.000000 0.190000 ( 0.193877)
clear hash with 100000 elements 0.040000 0.000000 0.040000 ( 0.035513)
pegacorn
2007-08-21 02:17:45 UTC
Permalink
From: Nobuyoshi Nakada <nobu-X+L+***@public.gmane.org>
Date: Tue, 21 Aug 2007 10:43:25 +0900
Message-Id: <20070821014331.6640AE02CB-pBmDeb/f/8J3+***@public.gmane.org>
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post by Nobuyoshi Nakada
Post by Yukihiro Matsumoto
* $B$I$N=g=x$,:GE,$+$O<B$O0l0U$K7h$^$i$J$$(B($B$h$&$J5$$,$9$k(B)
$B!V$I$N=g=x!W$HA*$Y$k$[$IA*Br;h$O$J$$$h$&$J5$$,$9$k$N$G$9$,!#(B
$BBg$-$/J,$1$F$b$3$l$/$i$$$O$"$k$+$H!#(B
$B!&EPO?=g(B
$B!&FCDj=g!J>:=gEy!K(B
$B!&%i%s%@%`!J$C$]$$$N$b4^$a$F!K(B


--
pegacorn
Nobuyoshi Nakada
2007-08-21 02:27:16 UTC
Permalink
$B$J$+$@$G$9!#(B

At Tue, 21 Aug 2007 11:17:45 +0900,
Post by pegacorn
Post by Nobuyoshi Nakada
Post by Yukihiro Matsumoto
* $B$I$N=g=x$,:GE,$+$O<B$O0l0U$K7h$^$i$J$$(B($B$h$&$J5$$,$9$k(B)
$B!V$I$N=g=x!W$HA*$Y$k$[$IA*Br;h$O$J$$$h$&$J5$$,$9$k$N$G$9$,!#(B
$BBg$-$/J,$1$F$b$3$l$/$i$$$O$"$k$+$H!#(B
$B!&EPO?=g(B
[ruby-dev:24569]$B$O$3$l$G$9$M!#(B
Post by pegacorn
$B!&FCDj=g!J>:=gEy!K(B
Hash$B$O(Bkey$B$r8BDj$7$J$$$N$G!"Dj5A$G$-$J$$$N$G$O$J$$$+$H;W$$$^$9!#(B
$B$?$H$($P(B {'one'=>1, 1.0=>1} $B$O$I$&$$$&=g=x$K$J$k$s$G$7$g$&$+!#(B
$B!&(B hash$BCM=g(B(num_bins$B$G(Bmod$B$H$C$F$^$9$,(B)
--
--- $BKM$NA0$K(BBug$B$O$J$$!#(B
--- $BKM$N8e$m$K(BBug$B$O$G$-$k!#(B
$BCfED(B $B?-1Y(B
pegacorn
2007-08-21 02:57:00 UTC
Permalink
From: Nobuyoshi Nakada <nobu-X+L+***@public.gmane.org>
Date: Tue, 21 Aug 2007 11:27:16 +0900
Message-Id: <20070821022722.A2F7EE02D3-pBmDeb/f/8J3+***@public.gmane.org>
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post by Nobuyoshi Nakada
Post by pegacorn
$B!&FCDj=g!J>:=gEy!K(B
Hash$B$O(Bkey$B$r8BDj$7$J$$$N$G!"Dj5A$G$-$J$$$N$G$O$J$$$+$H;W$$$^$9!#(B
$B$?$H$($P(B {'one'=>1, 1.0=>1} $B$O$I$&$$$&=g=x$K$J$k$s$G$7$g$&$+!#(B
$B%=!<%H$N4p=`$rDj5A$9$k%*%V%8%'%/%H$r;XDj$5$;$l$P!"(B
$B$I$&$$$&=g=x$K$G$b$G$-$k$H;W$$$^$9!#(B
# C++ $B$N(B std::map $B$N(B 3 $BHVL\$N%F%s%W%l!<%H0z?t$r%$%a!<%8$7$^$7$?!#(B


--
pegacorn
SASADA Koichi
2007-08-21 04:09:36 UTC
Permalink
Post by Nobuyoshi Nakada
Post by Yukihiro Matsumoto
* $B=g=x$NJ]B8$K$h$C$F(BHash$B$N8zN($,2<$,$k$N$O$&$l$7$/$J$$(B
[ruby-dev:24569]$B$r(B1.9$B:G?7MQ$KD>$7$F!"(BHal Fulton$B$+$iAw$i$l$F$-$?(B
$B%Y%s%A%^!<%/$r;n$7$F$_$^$7$?!#(B
$B!!;d$O=g=x$rJ]B8$9$k<B9T;~4V%*!<%P%X%C%I$r7y$C$F$$$?$N$G$9$,!"$3$N7k(B
$B2L$r8+$k$HB.$$$G$9$M!#$H$$$&$+!"%O%C%7%eA4BN$r$J$a$k=hM}$,B.$/$J$k$N(B
$B$OF;M}$G$9$M$'!#DI2C$,CY$/$J$k$N$G$O!"$H?4G[$7$F$$$?$s$G$9$,!"$[$H$s(B
$B$IJQ$o$C$F$J$$$7!#$H$$$&$+!"B.$/$J$C$F$k$7!J$?$@!"$3$NI>2A$@$1$@$H$"(B
$B$l$J$N$G!"$3$C$A$G$bDI;n$7$F$_$^$9!K!#(B

$B!!MxMQ%a%b%j$O(B 5/3 $BG\$K$J$k$N$G!"(B9MB$B!J(B1M$BMWAG$G!K>CHq$7$F$$$?$N$,(B
15MB $B$G$9$+!#$^$!!"(BRuby $BE*$K$O%a%b%j?)$$$O$"$s$^$j5$$K$7$J$$$s$G!"$$(B
$B$l$A$c$C$F$b$$$$$s$8$c$J$$$G$7$g$&$+!#(B
--
// SASADA Koichi at atdot dot net
Yukihiro Matsumoto
2007-08-21 04:21:21 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

$BI;C=$+$i6p!#(B

In message "Re: [ruby-list:43891] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Tue, 21 Aug 2007 13:09:36 +0900, SASADA Koichi <ko1-UVGkOX9qf+***@public.gmane.org> writes:

|$B!!MxMQ%a%b%j$O(B 5/3 $BG\$K$J$k$N$G!"(B9MB$B!J(B1M$BMWAG$G!K>CHq$7$F$$$?$N$,(B
|15MB $B$G$9$+!#$^$!!"(BRuby $BE*$K$O%a%b%j?)$$$O$"$s$^$j5$$K$7$J$$$s$G!"$$(B
|$B$l$A$c$C$F$b$$$$$s$8$c$J$$$G$7$g$&$+!#(B

$B$H$j$"$($:F~$l$F$_$^$7$g$&$+!#$J$+$@$5$s!"$*4j$$$7$F$b$h$$!)(B
Nobuyoshi Nakada
2007-08-21 04:59:43 UTC
Permalink
$B$J$+$@$G$9!#(B

At Tue, 21 Aug 2007 13:21:21 +0900,
Post by Yukihiro Matsumoto
|$B!!MxMQ%a%b%j$O(B 5/3 $BG\$K$J$k$N$G!"(B9MB$B!J(B1M$BMWAG$G!K>CHq$7$F$$$?$N$,(B
|15MB $B$G$9$+!#$^$!!"(BRuby $BE*$K$O%a%b%j?)$$$O$"$s$^$j5$$K$7$J$$$s$G!"$$(B
|$B$l$A$c$C$F$b$$$$$s$8$c$J$$$G$7$g$&$+!#(B
1.9$B$K$OF~$l$^$7$?!#(B1.8$B$O:#$N$^$^$G(B?

$B$"$H!"(Bst_reverse_foreach()$B$H$$$&$N$bDI2C$7$F$"$k$s$G$9$,!"(B
Hash#reverse_each$B$O$$$j$^$;$s$+(B?
--
--- $BKM$NA0$K(BBug$B$O$J$$!#(B
--- $BKM$N8e$m$K(BBug$B$O$G$-$k!#(B
$BCfED(B $B?-1Y(B
Yukihiro Matsumoto
2007-08-21 05:29:28 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43893] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Tue, 21 Aug 2007 13:59:43 +0900, Nobuyoshi Nakada <nobu-X+L+***@public.gmane.org> writes:

|> $B$H$j$"$($:F~$l$F$_$^$7$g$&$+!#$J$+$@$5$s!"$*4j$$$7$F$b$h$$!)(B
|
|1.9$B$K$OF~$l$^$7$?!#(B1.8$B$O:#$N$^$^$G(B?

1.8$B$K$OF~$l$J$$J}8~$G!#(B

|$B$"$H!"(Bst_reverse_foreach()$B$H$$$&$N$bDI2C$7$F$"$k$s$G$9$,!"(B
|Hash#reverse_each$B$O$$$j$^$;$s$+(B?

$BITMW$@$H;W$$$^$9!#(B
Akinori MUSHA
2007-08-21 09:34:38 UTC
Permalink
At Tue, 21 Aug 2007 13:59:43 +0900,
Post by Nobuyoshi Nakada
At Tue, 21 Aug 2007 13:21:21 +0900,
Post by Yukihiro Matsumoto
|$B!!MxMQ%a%b%j$O(B 5/3 $BG\$K$J$k$N$G!"(B9MB$B!J(B1M$BMWAG$G!K>CHq$7$F$$$?$N$,(B
|15MB $B$G$9$+!#$^$!!"(BRuby $BE*$K$O%a%b%j?)$$$O$"$s$^$j5$$K$7$J$$$s$G!"$$(B
|$B$l$A$c$C$F$b$$$$$s$8$c$J$$$G$7$g$&$+!#(B
1.9$B$K$OF~$l$^$7$?!#(B1.8$B$O:#$N$^$^$G(B?
$B!!(B1.8 $B$K$OF~$l$J$$$G$/$@$5$$!#(B

$B!!(B1.9 $B$K$*$$$F$b!"(B Hash $B$H$$$&L>A0$N%/%i%9$G=g=x$rJ]>Z$9$k$3$H$K$O(B
$BH?BP$G$9!#JL%/%i%9$K$9$k$+!"$;$a$***@8@.;~%*%W%7%g%s$K$7$F$[$7$$!#(B


$B!!(BSet $B$N%5%V%/%i%9(B SortedSet $B$O!"(B($BMxMQ2DG=$J$H$-$O(B) Hash $B$KBX$($F(B
RBTree $B$r;H$&$3$H$G<B8=$7$F$$$^$9!#(BRBTree $B$O$=$N%"%k%4%j%:%`<+BN$,(B
$BMWAG4V$NA4=g=x4X78$K0M5r$7$F$$$k$?$a!"E,@Z$G$"$k$H9M$($^$7$?!#(B

cf. http://raa.ruby-lang.org/project/ruby-rbtree

--
/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

"Different eyes see different things,
Different hearts beat on different strings --
But there are times for you and me when all such things agree"
SASADA Koichi
2007-08-21 10:29:11 UTC
Permalink
Post by Akinori MUSHA
$B!!(B1.9 $B$K$*$$$F$b!"(B Hash $B$H$$$&L>A0$N%/%i%9$G=g=x$rJ]>Z$9$k$3$H$K$O(B
$B!!M}M3$O$J$s$G$7$g$&!#<BAu>e$?$^$?$^=g=x$,J]>c$5$l$F$$$k$H$$$&$N$ONI(B
$B$$$G$7$g$&$+!#$=$l$H$b!"$3$l$b:.Mp$r>7$/!JJ]>c$5$l$F$k$H;W$C$F$I$s$I(B
$B$s%3!<%I$r=q$$$A$c$&?M$,$$$k!K$+$i%@%a$G$7$g$&$+!#(B


$B!!L>A0$rJQ$($k$N$O;?@.$J$N$G$9$,!"LdBj$J$N$OB?J,%j%F%i%k$G4JC1$K=q$1(B
$B$k$+$I$&$+$C$F$3$H$@$H;W$&$N$G$9$h$M$'!#(B
--
// SASADA Koichi at atdot dot net
Shingo Hagiwara
2007-08-21 10:56:35 UTC
Permalink
$BGk86$H$$$$$^$9!#(B

$BIaCJ$O$?$@$NMxMQ<T$G$9!#(B
$B$3$N=g=xJ]B85!G=$r!":#$N(BHash$B%/%i%9$KE}9g$9$k$N$OKM$bH?BP$G$9!#(B

$BM}M3$OC1=c$G$7$F!"%a%b%j$G$9!#(B
9MB$B$G9M$($k$H$?$$$7$?$3$HM-$j$^$;$s$,!"(B
$B%.%,1[$($9$k%W%m%0%i%`$r=q$$$F$$$k?M$,>/$J$$$H$O;W$($^$;$s!#(B
$B$=$7$F!"=g=x$J$II,MW$J$$$N$K!"%a%b%j?)$$$N(BHash$B$r;H$o$6$k$rF@$J$$(B
$B4D6-$K$J$k$N$***@5D>Ha$7$$$G$9!#(B
$B$^$?!"DI2C!":o=|!"$r7+$jJV$7$?>l9g!":F%=!<%H$7$J$$$H=g=x$,=g=x$G$J$/$J$k(B
$B$h$&$J[#Kf$J$b$N$N$?$a$K$=$s$J$K%a%b%j$r$5$-$?$/$b$J$$$G$9!#(B
$B$+$H$$$C$F!"(BPush$B$NEY$K<+F0$G:F%=!<%H$5$l$F$b(BHash$BK\Mh$N9bB.@-$,<:$o$l(B
$B$3$l$bHa$7$/$J$j$^$9!#(B

$B$b$H$b$H!"=g=x5!G=$rIU$1$?(BHash$B$N<BAu$rBU$1$?;v$+$iH/@8$7$?(B
$BLdBj$J$N$G!"$b$7AH$_9~$`$N$G$"$l$P!"%5%V%/%i%9$K$9$k$N$,BEEv$@$H(B
$BAG?ML\$K;W$($^$9!#(B

$B$=$l$G$O!"<:Ni$7$^$7$?!#(B
Urabe Shyouhei
2007-08-21 11:11:15 UTC
Permalink
$BLdBj$J$N$G!"(B
$BBU$1$H$+8@$o$l$k$N$O?430$G$9$M!#%/%i%9L>$,$o$6$o$6(BHash$B$H$J$C$F(B
$B$$$k0J>e!"0lHL$K$3$N%G!<%?9=B$$G=g=x$,J]B8$5$l$J$$$N$O2?$bFCJL(B
$B$J$3$H$G$O$"$j$^$;$s!#LdBj$G$b$J$$$H;W$C$F$^$9!#(B
Shingo Hagiwara
2007-08-21 11:18:50 UTC
Permalink
$BGk86$G$9!#(B

$B$9$$$^$;$s$G$7$?!#(B
$B!V(BRuby$B$N<BAu$,BU$1$F$$$?!W$H$$$&0UL#$G$O$J$$$G$9!#(B
$BK\%9%l%C%I$N0lHV=i$a$NEj9F<T$N;v$G$9!#(B

$B$H$j$"$($:!"8m2r$r!#(B

$BKM$O!"%O%C%7%e$OK\Mh=g=x$,$J$$$b$N$H;W$C$F$^$9!#(B

$B$=$l$G$O!#(B
Fujimoto Hisa
2007-08-21 11:15:00 UTC
Permalink
$BF#K\$G$9!#(B

$B0JA0!"?M$N=q$$$?(BC++$B$N%W%m%0%i%`$rFI$s$G$$$F!"(Bmap$B$N%$(B
$B%F%l!<%?$r;H$C$F$$$k(B
$B4JC1$J%3!<%I$,2?$r$7$F$k$N$+$7$P$i$/M}2r$G$-$J$+$C$?$3$H$,$"$j$^(B
$B$9!#(BC++$B$N(B
map($B=g=x$"$j(B)$B$r(BRuby$B$N(BHash($B=g=x$J$7(B)$B$N$h(B
$B$&$J$b$N$G$"$k$H!"<+J,$,4*0c$$$7(B
$B$F$$$?$N$,860x$G$7$?!#(B

$B4*0c$$$H$O$$$($3$N$h$&$J7P83$r$7$?N)>l$+$i$O!"(BHash$B<+BN$N=g(B
$B=x$N0UL#$r4J(B
$BC1$KJQ$($F$7$^$C$FK\Ev$K$$$$$N$+$J$H$$$&5?Ld$,;D$j$^$9!#(B

$B$H!"%9%l%C%I$rFI$s$G$$$F9M$($F$$$?$N$G$9$,!D(B
$B!!(B1.9 $B$K$*$$$F$b!"(B Hash $B$H$$$&L>A0$N%/%i%9$G=g=x(B
$B$rJ]>Z$9$k$3$H$K$O(B
$B$$!#(B
$B!!M}M3$O$J$s$G$7$g$&!#<BAu>e$?$^$?$^=g=x$,J]>c$5$l$F$$$k$H$$$&(B
$B$N$ONI(B
$B$$$G$7$g$&$+!#$=$l$H$b!"$3$l$b:.Mp$r>7$/!JJ]>c$5$l$F$k$H;W$C$F(B
$B$I$s$I(B
$B$K=q$1(B
$B=g=x$,J]>c$5$l$F$$$k(BHash$B$N%j%F%i%k$,=q$1$k$H!"(BObjective-
C$B$N%a%=%C(B
$B%I8F=P$7$KJXMx$@$H$$$&$3$H$K5$IU$-$^$7$?!#(B


$BF#K\>0K.(B
Akinori MUSHA
2007-08-21 12:47:52 UTC
Permalink
At Tue, 21 Aug 2007 19:29:11 +0900,
Post by SASADA Koichi
Post by Akinori MUSHA
$B!!(B1.9 $B$K$*$$$F$b!"(B Hash $B$H$$$&L>A0$N%/%i%9$G=g=x$rJ]>Z$9$k$3$H$K$O(B
$B!!M}M3$O$J$s$G$7$g$&!#<BAu>e$?$^$?$^=g=x$,J]>c$5$l$F$$$k$H$$$&$N$ONI(B
$B$$$G$7$g$&$+!#$=$l$H$b!"$3$l$b:.Mp$r>7$/!JJ]>c$5$l$F$k$H;W$C$F$I$s$I(B
$B!!$=$&$G$9$M!#$^$H$a$K$J$C$F$7$^$$$^$9$,!"(B

1. $BL><B0lCW(B
Hash $B$H$$$&$=$NL>>N$+$i!"=g=x@-$r4|BT$5$;$k$Y$-$G$J$$!#(B
($B$3$N;~E@$GBg5A$,$J$$(B)

2. $B@-G=(B
$B%a%b%j;HMQNLA}2C$dB.EYDc2<$r$b$?$i$7!":#8e$N:GE,2=$NM>CO$b(B
$B@)8B$9$k!#(B

3. $B8_49@-(B
$B5-K!$,JQ$o$i$J$$$?$a!"%3!<%ICGJR$r8+$?$@$1$G$O=g=x@-$r4|BT(B
$B$7$F$$$k$N$+$I$&$+FI$_<h$l$J$/$J$k!#$3$l$OB>$***@8l$d8E$$(B
$B%P!<%8%g%s$N(BRuby$B$X$N0\?"$NK8$2$K$J$k!#(B

$B$^$?!"(B shim (compatibility layer)$B$r<BAu$7$h$&$K$b!"BgI}$J(B
$B@-G=Nt2=$rH<$o$:$K<B8=$G$-$k$+5?$o$7$$!#(B

$B$J$I$,M}M3$G$9!#(B
$B!!%j%F%i%kI=8=$rMQ0U$9$k$H!"%P%C%/%]!<%H$7$J$$8B$j2<0L8_49@-$r(B
$B<:$$$^$9$,!"$=$l$O$5$F$*$-!#(B

$B!!(B[ x1 => y1, ... ] $B$@$H=g=xIU$-%^%C%W$***@8@.$9$k$H$+!)$3$l$O:#$O(B
[{ x1 => y1, ... ]} $B$H2r<a$5$l$^$9$,!"J8K!E*$K$OG[Ns$H6hJL2DG=!#(B

$B!!(BSet $B$b$=$m$=$mAH$_9~$_$K!D!#$3$A$i$O$b$A$m$s(B { x, y, z, w }$B!#(B
$B$o$+$j$K$/$$$+!*(B (j/k)


$B!!(B%m{ x1 => y1, ... } $B$_$?$$$J$N$b$J$$$3$H$O$J$$$H;W$$$^$9!#(B


$B!!$,!"$=$b$=$b%j%F%i%k5-K!$,I,MW$J$[$IB?MQ$5$l$k$+$I$&$+!#(B

--
/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

"Different eyes see different things,
Different hearts beat on different strings --
But there are times for you and me when all such things agree"
松房 一郎
2007-08-21 13:22:21 UTC
Permalink
OrderedHash.new()$B$K(BArray$B$rEO$;$k$h$&$K$7$F$*$1$P(B
OrderedHash.new([1. "One", 2, "Two"])
$B$H$$$&=q$-J}$G%j%F%i%k$b$I$-$K$G$-$^$9!#%a%j%C%H$O!"(B
- $B%j%F%i%k$HF1MM$K%*%V%8%'%/%H$NCM$,%W%m%0%i%`%=!<%9$G$o$+$k(B
$B!!%j%F%i%kI=8=$rMQ0U$9$k$H!"%P%C%/%]!<%H$7$J$$8B$j2<0L8_(B
$B<:$$$^$9$,!"$=$l$O$5$F$*$-!#(B
[{ x1 => y1, ... ]} $B$H2r<a$5$l$^$9$,!"J8K!E*$K$OG[Ns$H6hJL2DG=!#(B
$B!!(BSet $B$b$=$m$=$mAH$_9~$_$K!D!#$3$A$i$O$b$A$m$s(B { x, y, z, w }$B!#(B
$B$o$+$j$K$/$$$+!*(B (j/k)
$B!!(B%m{ x1 => y1, ... } $B$_$?$$$J$N$b$J$$$3$H$O$J$$$H;W$$$^$9!#(B
$B!!$,!"$=$b$=$b%j%F%i%k5-K!$,I,MW$J$[$IB?MQ$5$l$k$+$I$&$+!#(B
rubikitch-X+L+
2007-08-21 13:29:01 UTC
Permalink
From: $B>>K<(B $B0lO:(B <adj41380-***@public.gmane.org>
Subject: [ruby-list:43908] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B
Date: Tue, 21 Aug 2007 22:22:21 +0900
Post by 松房 一郎
OrderedHash.new()$B$K(BArray$B$rEO$;$k$h$&$K$7$F$*$1$P(B
OrderedHash.new([1. "One", 2, "Two"])
$B$H$$$&=q$-J}$G%j%F%i%k$b$I$-$K$G$-$^$9!#%a%j%C%H$O!"(B
$B$=$l$J$i$$$C$=$N$3$H(B OrderedHash[1, "One", 2, "Two"] $B$N$[$&$,$$$$$N$G$O!)(B
([ $B!A(B ])$B$,$A$g$C$H7y!#(B

$B$G$b8=J8K!$G$G$-$k$H$3$m$O$=$3$^$G$G$7$g$&$M!#(B
$B$J$s$H$$$C$F$b(B => $B$,$J$$$H(BHash$B$H$$$&46$8$,$7$^$;$s$7!#(B
--
rubikitch
http://www.rubyist.net/~rubikitch/
NAKAMURA Akifumi
2007-08-21 15:53:54 UTC
Permalink
A.nakamura$B$G$9!#(B


$B%^%K%e%"%k8+$?$s$G$9$,!"(B
http://www.ruby-lang.org/ja/man/?cmd=view;name=Hash
$B$3$NKAF,$***@bL@(B($B8=;~E@$G$N(B)$B$rFI$s$@$@$1$G(B
$B!V$3$j$c=g=xL5$$$h$J!W$H!V$o$+$k!W?M$C$F$N$O!"(B
$B%O%C%7%e$H$$$&C18l$N;}$D??$N0UL#$rM}2r$7$F$k?M$G!"(B
$B$o$+$i$s?M$O$o$+$i$s$G=*$o$C$A$c$&$s$8$c$J$$$G$7$g$&$+!)(B
Hash$B$H$$$&L>$,%"%k%4%j%:%`$r0E<((B($B$I$3$m$G$O$J$$$,(B)$B$7$F$k(B
$B$H$$$&$3$H$K5$$E$+$J$$?M$O5$$E$+$J$$!#(B

$B!VO"A[G[Ns!W$H$$$&***@MU$b!"=g=x$,L5$$$H$O8@$C$F$J$$$o$1$G!#(B
($BM-$k$H$b8@$C$F$^$;$s$,(B)

$B$s!<!#%O%C%7%e$H$O2?$>$d!"$_$?$$$J$3$H$b=q$$$?$[$&$,$$$$$N$+$J$"!#(B
$B$"$k$$$***@bL@$7$F$k30It%5%$%H$K%j%s%/$7$A$c$&$H$+!)(B
WikipediaJ:$B%O%C%7%e%F!<%V%k(B $B!D(B
Post by rubikitch-X+L+
$B$J$s$H$$$C$F$b(B => $B$,$J$$$H(BHash$B$H$$$&46$8$,$7$^$;$s$7!#(B
$B8D?ME*$K$O$I$&$$$&$o$1$+(BHash$B$N$"$l$N!V(B=>$B!W$K2?G/$?$C$F$***@w$a$J$$$G$$$^$9!#(B
$B%j%F%i%k$G!V0lH/$G!W=q$1$k$3$H$K$O6/$$L%NO$O46$8$^$9$,!"(B
Hash$B$N$"$N%j%F%i%k$,$I$&$b9%$a$J$$!#(B

$B$=$3$G!V0lCJ$+$^$7$F!W=q$/$H$$$&BE6($r9M$($?$j$7$^$9!#(B
$B$"$k$$$O(BHash[key,value,...]$B$HF1MM$NO)@~$G!#(B

$B$G!"(B
OrderedHash[1, "One", 2, "Two"]
$B$b$=$l$H;w$?$h$&$J$b$s$+$J$H;W$&$s$G0lI<!#(B
OrderdHash$B$H$$$&L>A0$,D9$/$F$$$d$@!*$H$$$&$J$i!"(B
a$B$G$b$J$s$G$b$$$$(B($B$o$i(B)$B$+$iJLL>$G8F$Y$P$$$$$7!#(B

$B$C$F$$$&$+!"M_$7$$?M$,(B
def a(data)
HogehogeConntainer.new(data)
end
$B$C$F=q$/$C$F$3$H$GNI$$$h$&$J5$$,$9$k$s$@$h$J$"!#(B
Ruby$BK\BN$r0lHVO.$i$:$K:Q$`$N$O%3%l!"$G$7$g$&$+!#(B

$B3N$+$K;~$H$7$F!"%j%F%i%k$KD>7k$7$F$k%/%i%9$,(B
$B!V$&$i$d$^$7$/!W;W$($k$3$H$bM-$k$s$G$9$,!"(B
$B!V0lCJ$+$^$9!W$D$^$j%3%s%P!<%H$9$k$H9M$($l$P!"(B
$B$^$"BE6($NHO0O$+$J$H;W$C$F$$$^$9!#(B
Array$B$J$j$J$s$J$j$r(B1$B$D;H$$<N$F$k$3$H$K$J$j$^$9$,!"(B
LL$B$J$s$@$+$i%$%$%d%s$H$$$&$+(B(^^;$B!#(B
$B$=$7$F%j%F%i%k$G=q$/$C$F$3$H$O(B(JSON$BE*$K;H$&>l9g$r=|$1$P(B)
$B$"$^$j5pBg$J%G!<%?$OF~$l$J$$$@$m$C$F;*FI$s$G$_$?$j!#(B


$B$"$H!"(B
%m{ x1 => y1, ... }
$B$^$?$O(B
%m{ x1, y1, ... }
$B$_$?$$$K(B
$B3g8L$K(BPrefix$B$D$1$k(B($B$H$$$&$N$G$7$g$&$+!)(B)$B$3$H$G0UL#$rJQ$($k!"(B
$B$C$F$$$&;EAH$_$r$b$7(B(Ruby$B$G=q$/$H$-$K(B)$B;H$($k$s$@$C$?$i!"(B
$B?'!9$d$l$=$&$G$9$M!#(B
$B!t<}=&$D$+$J$/$J$k62$l$b$"$j$^$9$,(B(^^;
rubikitch-X+L+
2007-08-21 17:05:14 UTC
Permalink
From: NAKAMURA Akifumi <BXQ04723-fFkzxiWP14B3+***@public.gmane.org>
Subject: [ruby-list:43912] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B
Date: Wed, 22 Aug 2007 00:53:54 +0900
$B$"$!!"@N$O(BPerl$B$+$i$NN.$l$GKM$b(BHash$B$r!VO"A[G[Ns!W$H8F$s$G$$$^$7$?$M!#(B
$BO"A[G[Ns$H$$$&***@MU$+$i!VO"A[G[Ns">G[Ns!W$J0u>]$r;}$C$F!"(B
$B$G$OG[Ns$J$i$P=g=x$,$"$k$@$m$&$H4|BT$9$k?M$,$$$k$+$b$7$l$^$;$s$M!#(B

<$***@NOC(B>
C$B$7$+CN$i$J$+$C$?Ev;~!"(BPerl4$B$r?($C$F=i$a$FO"A[G[Ns$K=P2q$C$?$H$-$N>W7b$r:#$G(B
$B$b$O$C$-$j$H3P$($F$$$^$9!#(B
</$***@NOC(B>

--
rubikitch
http://www.rubyist.net/~rubikitch/
SASADA Koichi
2007-08-21 16:05:38 UTC
Permalink
Post by Akinori MUSHA
$B%P!<%8%g%s$N(BRuby$B$X$N0\?"$NK8$2$K$J$k!#(B
$B!!@-G=$K4X$7$F$OJL$N0U8+$b$"$k$N$G$9$,!$$3$NLdBj$O3N$+$K$=$&;W$$$^$9!%(B


$B!!$7$+$7!$;EMM$K4X$7$F!$$o$+$j$d$9$$LdBj$@$+$i$G$7$g$&$+!$@($$@9$j>e(B
$B$,$j$^$9$M!%(Bruby 1.9 $B$G$O?'!9$HJQ99$9$k$h$&$J$N$G$9$,!$$3$3$K%]%9%H(B
$B$7$?$[$&$,$$$m$$$m0U8+$,J9$1$k!)(B
--
// SASADA Koichi at atdot dot net
GOTO Kentaro
2007-08-21 16:36:59 UTC
Permalink
$B$K$.$o$C$F$k$N$K$^$.$l$F$h$/FI$^$:$K=q$$$A$c$$$^$9$,!"(B
$B$$$^OCBj$K$J$C$F$k%/%i%9$O$I$s$J(B API $B$J$s$G$7$g$&$+!#(B
$B%O%C%7%e$K=g=x$r$D$1$k$H$$$C$F$b!"7P83E*$K$O>/$J$/$H$b(B
* $B3JG<$5$l$?=g=x$r3P$($i$l$k(B
* keys.sort_by(&ord).each do |k| ... end $B$N(B ord $BAjEv$r;XDj$G$-$k(B
$B$H$$$&FsDL$j$rI,MW$H$9$k$3$H$,B?$$$s$G$9$,!"N>J}%5%]!<%H$7$F$$$k$s$G$7$g$&$+!#(B

$BA0<T$N>l9g!"(Bdelete $B$5$l$?8e$K:F3JG<$5$l$?>l9g$N=g=x$r$I$&$7$?$i$$$$$N$+(B
$B$H$$$&$N$,$P$"$$$K$h$C$F$A$,$C$?$j$9$k$N$G!"7k6I$I$&$^$H$a$k$N$,$$$$$N$+(B
$B$h$/$o$+$s$J$/$FF|>***@83h$G$OMW$k$b$N$rETEY$D$/$C$F$^$9!#(B


$B$4$H$1$s(B
Nobuyoshi Nakada
2007-08-21 17:03:50 UTC
Permalink
$B$J$+$@$G$9!#(B

At Wed, 22 Aug 2007 01:36:59 +0900,
Post by GOTO Kentaro
$B%O%C%7%e$K=g=x$r$D$1$k$H$$$C$F$b!"7P83E*$K$O>/$J$/$H$b(B
* $B3JG<$5$l$?=g=x$r3P$($i$l$k(B
* keys.sort_by(&ord).each do |k| ... end $B$N(B ord $BAjEv$r;XDj$G$-$k(B
$B$H$$$&FsDL$j$rI,MW$H$9$k$3$H$,B?$$$s$G$9$,!"N>J}%5%]!<%H$7$F$$$k$s$G$7$g$&$+!#(B
$BA0<T$N$_$G$9!#(B
Post by GOTO Kentaro
$BA0<T$N>l9g!"(Bdelete $B$5$l$?8e$K:F3JG<$5$l$?>l9g$N=g=x$r$I$&$7$?$i$$$$$N$+(B
$B$H$$$&$N$,$P$"$$$K$h$C$F$A$,$C$?$j$9$k$N$G!"7k6I$I$&$^$H$a$k$N$,$$$$$N$+(B
$BDI2C$O:G8e$G$9!#(B
--
--- $BKM$NA0$K(BBug$B$O$J$$!#(B
--- $BKM$N8e$m$K(BBug$B$O$G$-$k!#(B
$BCfED(B $B?-1Y(B
GOTO Kentaro
2007-08-21 23:32:56 UTC
Permalink
$B$:$\$i$J<ALd$KEz$($F$/$l$FCfED$5$s$I$&$b$"$j$,$H$&$G$9!#(B
Post by Nobuyoshi Nakada
Post by GOTO Kentaro
* $B3JG<$5$l$?=g=x$r3P$($i$l$k(B
* keys.sort_by(&ord).each do |k| ... end $B$N(B ord $BAjEv$r;XDj$G$-$k(B
$B$H$$$&FsDL$j$rI,MW$H$9$k$3$H$,B?$$$s$G$9$,!"N>J}%5%]!<%H$7$F$$$k$s$G$7$g$&$+!#(B
$BA0<T$N$_$G$9!#(B
$B$J$k$[$I!#(B
$BBg%/%i%9<g5AE*$K$O$:$$$V$s$HIO<e$J5$$,$7$^$7$?!#(B
$B$G$b$^$"!"Nc30$r5/$3$5$J$$$h$&$KG$0U$N=g=x$r;XDj$9$k$N$O(B
$B<j7Z$G$O$J$+$C$?$j$b$7$^$9$M!#(B

$B$A$J$_$KKM$,=g=x$r$[$7$,$k$H$-$O$?$$$F$$J8;zNs=hM}$N0l4D$G!"(B
$B$=$l$bB?$/$O%U%!%$%k$NFI$_=q$-$N>l9g$G$9!#$?$H$($P!"(Bto_yaml $B$N=g=x$,(B
$B5$$K$J$k$h$&$J$P$"$$$H$+$G$9$M!#$"$k$$$O(BXML$B$NB0@-$_$?$$$J$N$N(B
$B=P8==g=x$r3P$($F$*$-$?$$$H$-$H$+!#(Bto_yaml $B$@$C$?$i(B Hash#each $B$r(B
$B=q$-49$($F(B keys.sort_by $B=g$G<B9T$9$k$h$&$K$7$A$c$&$7!"(B
$B=P8==g5-O?$N>l9g$O!"3JG<=g$r3P$($kG[Ns$r;}$?$;$F$^$9!#(B
$BJ8;zNs0J30$N>l9g$r$"$5$C$F$_$k$H!"%N!<%I$K%i%Y%k$,(B
$B$D$$$?LZ$r:n$k$H$-$J$s$+$b(B Hash $B$N%M%9%H$GBeMQ$7$?$j$7$^$9$,!"(B
$B$=$&$$$&$H$-$KI,MW$J=g=x$NDj5A$O%"%W%j%1!<%7%g%s0MB8$G$9$M!#(B

$B$4$H$1$s(B
# $BO"A[G[Ns$HJ9$/$H(B AWK $B$r;W$$=P$7$^$9(B
Nobuyoshi Nakada
2007-08-22 00:54:27 UTC
Permalink
$B$J$+$@$G$9!#(B

At Wed, 22 Aug 2007 08:32:56 +0900,
Post by GOTO Kentaro
Post by Nobuyoshi Nakada
Post by GOTO Kentaro
* $B3JG<$5$l$?=g=x$r3P$($i$l$k(B
* keys.sort_by(&ord).each do |k| ... end $B$N(B ord $BAjEv$r;XDj$G$-$k(B
$B$H$$$&FsDL$j$rI,MW$H$9$k$3$H$,B?$$$s$G$9$,!"N>J}%5%]!<%H$7$F$$$k$s$G$7$g$&$+!#(B
$BA0<T$N$_$G$9!#(B
$B$J$k$[$I!#(B
$BBg%/%i%9<g5AE*$K$O$:$$$V$s$HIO<e$J5$$,$7$^$7$?!#(B
$B$G$b$^$"!"Nc30$r5/$3$5$J$$$h$&$KG$0U$N=g=x$r;XDj$9$k$N$O(B
$B<j7Z$G$O$J$+$C$?$j$b$7$^$9$M!#(B
$B$H$$$&$+!":#2s$NJQ99$O(Bst.c$B$KBP$9$k$b$N$J$N$G!"D>@\(Bruby$B%l%Y%k$N5!(B
$BG=$rDI2C$9$k$3$H$O$+$J$jLLE]$K$J$j$^$9!#(B

$B$=$l$K!"G$0U$N=g=x$r;XDj$7$?$1$l$PDI2C$O4JC1$J$N$G!#(B

class Hash
def order(&b)
sort(&b).inject(self.class.new) {|h, (k, v)| h[k] = v; h}
end
def order_by(&b)
sort_by(&b).inject(self.class.new) {|h, (k, v)| h[k] = v; h}
end
end
--
--- $BKM$NA0$K(BBug$B$O$J$$!#(B
--- $BKM$N8e$m$K(BBug$B$O$G$-$k!#(B
$BCfED(B $B?-1Y(B
Tanaka Akira
2007-08-22 05:58:12 UTC
Permalink
Post by Akinori MUSHA
1. $BL><B0lCW(B
$B$3$l$O$"$j$&$kM}M3$@$H;W$$$^$9!#(B
$B$?$@!"F1;~$K!"$H$-$KL>A0$HCf?H$,$:$l$k$3$H$,$"$k$N$b;v<B$@$H(B
$B;W$$$^$9!#(B
Post by Akinori MUSHA
$B%P!<%8%g%s$N(BRuby$B$X$N0\?"$NK8$2$K$J$k!#(B
Ruby $B$N%P!<%8%g%s$K$D$$$F$O2aEOE*$JOC$G$7$g$&!#(B

$BB>$***@8l$K$D$$$F$O!"(BPHP $B$+$i(B Ruby $B$X$N0\?"$G:$$C$?$H$+$$$&OC(B
$B$,:#$^$G$KB?$+$C$?$G$7$g$&$+!#(B
Post by Akinori MUSHA
$B$^$?!"(B shim (compatibility layer)$B$r<BAu$7$h$&$K$b!"BgI}$J(B
$BI,MW$J$i(B 1.9 $B$+$i(B backport $B$9$l$P$$$$$G$7$g$&!#(B
Post by Akinori MUSHA
$B%a%b%j;HMQNLA}2C$dB.EYDc2<$r$b$?$i$7!":#8e$N:GE,2=$NM>CO$b(B
$B$I$&:GE,2=$9$k$+!"A[Dj$7$F$$$k$3$H$O$"$j$^$9$+(B?

$BB.EYDc2<$OB,Dj7k2L$r8+$k8B$j$"$^$j5$$K$J$i$J$$$h$&$K;W$($^$9!#(B

$B$?$@!"%a%b%j;HMQNLA}2C$O%j%"%k$JLdBj$K$J$jF@$k$H;W$$$^$9!#(B

$B$b$A$m$s!"%a%b%jA4BN$KBP$9$k(B st $B$N3d9g$,LdBj$K$J$k$N$G!"$^$:(B
$B$OB,Dj$7$F$_$J$$$3$H$K$O!"$H$$$&$3$H$GB,Dj$7$F$_$^$7$?!#(B

$B$H$j$"$($:B,DjBP>]$O0J2<$N$b$N$G$9!#(B

* sample/test.rb
* test/runner.rb
* rm -rf .ext/rdoc $B$7$F(B ./bin/rdoc --all --ri --op .ext/rdoc .

$B$3$l$i$r(B valgrind $B$N(B massif $B$G$O$+$C$F$_$^$7$?!#(B
(massif $B$O(B heap profiler $B$G$9!#$$$-$J$j(B ps $B$G?^$,=P$^$9!#(B)

r13123 $B$H(B r13128 $B$G(B ruby $B$r:n$C$F!"(B

valgrind --tool=massif --format=html \
--alloc-fn=ruby_xmalloc --alloc-fn=ruby_xrealloc \
--alloc-fn=ruby_xrealloc2 --alloc-fn=ruby_xmalloc2 \
--alloc-fn=ruby_xcalloc \
./ruby ./bin/rdoc --all --ri --op .ext/rdoc .

$B$J$I$H$7$***@8@.$5$l$?$b$N$r(B
http://cvs.m17n.org/~akr/diary/2007-08/
$B$K$*$$$F$*$-$^$7$?!#(B
(test-all $B$O(B runner.rb $B$r<B9T$7$?%W%m%;%9$N$b$N$@$1$G$9!#(B)

$B$$$-$J$j$9$4$/$G$+$/$J$kDx$C$FDx$8$c$J$$$G$9$,!"8+$F$o$+$k1F(B
$B6A$O$"$j$^$9!#8+Hf$Y$k$H!"(Bst $B4X78$,0lHVKD$i$s$G$k$N$O(B rdoc
$B$G$9$+$M!#(B

$B$H$j$"$($:FbItE*$K;H$C$F$k(B st $B$G!"=g=x$,ITMW$J$3$H$,$o$+$C$F(B
$B$$$k$b$N$K$^$G=g=x$rIU$1$k$N$OHr$1$?$[$&$,$$$$$s$8$c$J$$$+$H(B
$B46$8$^$9!#%7%s%\%k$N$d$D$H$+!#(B
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
Tanaka Akira
2007-08-23 04:42:06 UTC
Permalink
Post by Tanaka Akira
$B$$$-$J$j$9$4$/$G$+$/$J$kDx$C$FDx$8$c$J$$$G$9$,!"8+$F$o$+$k1F(B
$B6A$O$"$j$^$9!#8+Hf$Y$k$H!"(Bst $B4X78$,0lHVKD$i$s$G$k$N$O(B rdoc
$B$G$9$+$M!#(B
$B$b$&$A$g$C$HB,$C$?7k2L!"$I$&$b%$%s%9%?%s%9JQ?t$rI=8=$9$k(B
st (iv_tbl) $B$,KD$i$s$G$k$N$,860x$N$h$&$G$9!#(B

$B%$%s%9%?%s%9JQ?t$N=g=x$r3P$($F$[$7$$$H;W$&?M$O!"$^$!!"8D?ME*(B
$B$K$O(B pp $B$H(B inspect $B$G$=$N=g=x$r;H$$$?$$$H$$$&5$$O$7$^$9$,!"(B
st_table_entry $B$N%U%#!<%k%I$r$U$?$DA}$d$7$F$^$G$7$?$$$+$H$$(B
$B$&$H!"$=$l$[$I$K$O;W$$$^$;$s!#(B

$B$H$9$k$H!"(Bst $B$<$s$V$r=g=x$D$-$K$9$k$N$O$5$9$,$K$d$j$9$.$G!"(B
$B$d$k$K$7$F$bN>J}Ds6!$7$F!">/$J$/$H$b(B iv_tbl $B$O=g=x$J$7$K$9$k(B
$B$N$,=gEv$N$h$&$K;W$$$^$9!#$=$&$9$l$P!"(Brdoc $B$N%1!<%9$G$O!"%a(B
$B%b$j>CHq$O$?$$$7$FA}$($J$$$h$&$K$J$k46$8$,$7$^$9!#(B
($BB,$C$?7k2L!"%$%s%9%?%s%9JQ?t0J30$G$O(B Hash $B$O=P$F$3$J$/$F!"(B
$B$`$7$m(B Range $B$,=P$F$-$?$N$G!"(BHash $B$O;YG[E*$G$J$$$h$&$K;W$&(B)

$B$b$A$m$s!"(Brdoc $B$N%1!<%9$G$=$&$@$C$?$+$i$H$$$C$F$9$Y$F$N%1!<(B
$B%9$GLdBj$J$$$H$O8B$i$J$$$o$1$G!"(BHash $B$r$?$/$5$s$?$/$5$s$D$+(B
$B$&%1!<%9$G$OLdBj$K$J$k$G$7$g$&!#(B

$B$H$$$&$o$1$G!"(BHash::Ordered $B$H$+$H$7$FJL$K:n$k$N$,$$$$$s$8$c(B
$B$J$$$G$9$+$M!#(B

$B$=$7$F!"%j%F%i%k$N(B {} $B$r(B Hash::Ordered $B$K$9$k$H$+$I$&$G$9$+(B
$B$M!#(B{} $B$K$O$I$3$K$b(B hash $B$H$$$&C18l$,=P$F$-$^$;$s$7!"5-K!$H(B
$B$7$F$b=g=x$,$"$j$^$9$7!#$^$!!"(B1$B<!85$NJ8;zNs$G%W%m%0%i%`$r=q(B
$B$/0J>e!"=g=x$NL5$$5-K!$H$$$&$N$O$^$:$"$j$($J$$$o$1$G$9$,(B...
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
Yugui
2007-08-24 06:04:52 UTC
Permalink
Yugui$B$H$$$$$^$9!#(B
Post by Tanaka Akira
$B$H$$$&$o$1$G!"(BHash::Ordered $B$H$+$H$7$FJL$K:n$k$N$,$$$$$s$8$c(B
$B$J$$$G$9$+$M!#(B
$B$=$7$F!"%j%F%i%k$N(B {} $B$r(B Hash::Ordered $B$K$9$k$H$+$I$&$G$9$+(B
$B$M!#(B{} $B$K$O$I$3$K$b(B hash $B$H$$$&C18l$,=P$F$-$^$;$s$7!"5-K!$H(B
$B$7$F$b=g=x$,$"$j$^$9$7!#$^$!!"(B1$B<!85$NJ8;zNs$G%W%m%0%i%`$r=q(B
$B$/0J>e!"=g=x$NL5$$5-K!$H$$$&$N$O$^$:$"$j$($J$$$o$1$G$9$,(B...
$BF10U$G$9!#(B
* Hash$B$H$$$&L>A0$G$"$k0J>e$O=g=x$O4|BT$G$-$J$$$N$,<+A3$@$H;W$$$^$9(B
* $B=g=x$rJ]$?$J$$$G8zN($r=E;k$7$?$$>l9g$NA*Br;h$r;D$7$FM_$7$$$G$9!#(B
* $B%j%F%i%k$K$O=g=x$,$"$k$h$&$K8+$($k$H$$$&0U8+$K$O0lM}$"$j$^$9!#(B
* $B%j%F%i%kI=5-$rMQ$$$kBgItJ,$N%1!<%9$K$*$$$F!"=g=x$rJ]$D%3%9%H$O(B
$B5vMF$G$-$k$H;W$$$^$9!#(B

$B$J$N$G(B
* Hash$B%/%i%9$O8=>u0];}(B
* Hash::Ordered$B$r?***@_(B
* $B=>Mh%O%C%7%e%j%F%i%k$H8F$P$l$F$$$?I=5-$O(BHash::Ordered$B$N%j%F%i%k$K!#(B
* Hash[:a => 1, :b => 2]$B$N$h$&$JI=5-$G(BHash$B$N%$%s%9%?%s%9$***@8@.$G$-$l$P$h$$!#(B
--
Yugui
yugui-utBekQ37Wi02g11tahj2xc8NsWr+***@public.gmane.org
http://idm.s9.xrea.com
Shin'ya Adzumi
2007-08-24 06:53:07 UTC
Permalink
$B$"$E$_$G$9!#(B
Post by Yugui
* $B=>Mh%O%C%7%e%j%F%i%k$H8F$P$l$F$$$?I=5-$O(BHash::Ordered$B$N%j%F%i%k$K!#(B
$B$U$H!":#<j85$N#P#C$KF~$C$F$$$k(B ruby1.8.6 $B$r8+$F$_$?$i(B

yaml/baseemitter.rb: @seq_map = true if v.class == Hash

$B$H$$$&$N$,$"$j$^$9$M!#(B
$B$3$&$$$&=q$-J}$7$F$k%9%/%j%W%H$O$A$g$C$H%^%:$$$+$b!#(B

# $B$6$C$H8+$?8B$j!"$"$s$^$jB?$/$O$J$5$=$&$@$1$I(B


$***@Q?-Lo(B
adzumi-***@public.gmane.org
Yukihiro Matsumoto
2007-08-24 08:33:11 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43927] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Fri, 24 Aug 2007 15:04:52 +0900, Yugui <yugui-utBekQ37Wi02g11tahj2xc8NsWr+***@public.gmane.org> writes:

|> $B$=$7$F!"%j%F%i%k$N(B {} $B$r(B Hash::Ordered $B$K$9$k$H$+$I$&$G$9$+(B
|> $B$M!#(B{} $B$K$O$I$3$K$b(B hash $B$H$$$&C18l$,=P$F$-$^$;$s$7!"5-K!$H(B
|> $B$7$F$b=g=x$,$"$j$^$9$7!#$^$!!"(B1$B<!85$NJ8;zNs$G%W%m%0%i%`$r=q(B
|> $B$/0J>e!"=g=x$NL5$$5-K!$H$$$&$N$O$^$:$"$j$($J$$$o$1$G$9$,(B...
|
|$BF10U$G$9!#(B
| * Hash$B$H$$$&L>A0$G$"$k0J>e$O=g=x$O4|BT$G$-$J$$$N$,<+A3$@$H;W$$$^$9(B
| * $B=g=x$rJ]$?$J$$$G8zN($r=E;k$7$?$$>l9g$NA*Br;h$r;D$7$FM_$7$$$G$9!#(B
| * $B%j%F%i%k$K$O=g=x$,$"$k$h$&$K8+$($k$H$$$&0U8+$K$O0lM}$"$j$^$9!#(B
| * $B%j%F%i%kI=5-$rMQ$$$kBgItJ,$N%1!<%9$K$*$$$F!"=g=x$rJ]$D%3%9%H$O(B
| $B5vMF$G$-$k$H;W$$$^$9!#(B
|
|$B$J$N$G(B
| * Hash$B%/%i%9$O8=>u0];}(B
| * Hash::Ordered$B$r?***@_(B
| * $B=>Mh%O%C%7%e%j%F%i%k$H8F$P$l$F$$$?I=5-$O(BHash::Ordered$B$N%j%F%i%k$K!#(B
| * Hash[:a => 1, :b => 2]$B$N$h$&$JI=5-$G(BHash$B$N%$%s%9%?%s%9$***@8@.$G$-$l$P$h$$!#(B

$BF10U$7$^$;$s!#(B

* $BA4$/F1$85!G=$G@-<A$@$10[$J$k%/%i%9$rJ#?tMQ0U$9$k$N$OBg%/(B
$B%i%9<g5A$rI8\V$9$k(BRuby$BE*$G$J$$(B

* Hash$B$H$$$&L>A0$O(BHash$B%"%k%4%j%:%`$r;H$C$F$$$k$3$H$7$+0UL#(B
$B$7$J$$!#(Bkey$B$NEP>l=g=x$,$"$k$+$I$&$+$O%9%3!<%W30!#$?$@$7!"(B
Ruby$B$G=g=x$,$"$k$HB>$***@8l$G!V=g=x$O$J$$$N$+!W$HA{$0?M$,(B
$B5o$?$j$7$F!"650iE*LdBj$,H/@8$9$k2DG=@-$OH]Dj$7$J$$!#(B

* $B;~4V8zN($K$O=g=x$rJ]$?$J$$$+$I$&$+$O4X78$J$$!#(B

* $B6u4V8zN($K$O$"$kDxEY4X78$,$"$k$,!"$A$c$s$H%Y%s%A%^!<%/$r(B
$B<h$C$F$_$J$$$H$J$K$b8@$($J$$!#$=$l$G$b!"$I$l$@$1=EBg$+$O(B
$B%1!<%9%P%$%1!<%9$@$H;W$&$1$I!#(B

* $B$H$O$$$(!"%$%s%9%?%s%9JQ?t$d%7%s%\%k%F!<%V%k$K$^$G=g=x$r(B
$BJ]>Z$9$k$N$O$d$j$9$.$J$N$G!"$=$l$O$d$a$kJ}8~$G!#(B

$B$H9M$($F$$$^$9!#$G$9$+$i!">-Mh$"$j$($kAH$_9g$o$;$O(B

* 1.8$B$N$^$^!"=g=x$OF3F~$7$J$$(B
* Hash$B$K=g=x$rF3F~$9$k(B($B$?$@$7!"%$%s%9%?%s%9JQ?t$d%7%s%\%k%F!<(B
$B%V%k$J$I$K$O$J$$(B)

$B$N$$$:$l$+$G$O$J$$$+$H!#5$;}$AE*$K$O8e<T$K79$$$F$$$^$9!#(B

$B$^$D$b$H(B $B$f$-$R$m(B /:|)
Fujimoto Hisa
2007-08-24 12:17:22 UTC
Permalink
$BF#K\$G$9!#(B

$BN)>l$O!"(BHash$B%j%F%i%k$N:8$+$i=g$,J]>Z$5$l$k$H$&$l$7$$GI$G$9!#(B

# RubyCocoa$B$G(BObjective-C$B$N%a%C%;!<%8Aw?.$K;H$($k(B

$B%j%F%i%k$G$N:8$+$i=g$NJ]>Z$,<B8=$9$k$J$i!"$=$l$,$I$s$J$U$&$K<BAu$5$l$k(B
$B$+$K$O$"$^$j$3$@$o$j$O$"$j$^$;$s!#$J$N$G!V%j%F%i%k$N<BBN!a=g=x$rJ]>c$9(B
$B$k2~NI(BHash$B!W$G$b==J,$K$"$j$,$?$$$N$G$9$,!"$5$i$K!"8=:_$N(BHash$B%j%F%i%k$H(B
$B%W%m%0%i%_%s%0>e$N8_49@-$,0];}$5$l$F$$$l$P!"%j%F%i%k$N<BBN$O(BHash$B$G$J$/(B
$B$F$b$$$$$H;W$C$F$$$^$9!#(B
Post by Yukihiro Matsumoto
|> $B$=$7$F!"%j%F%i%k$N(B {} $B$r(B Hash::Ordered $B$K$9$k$H$+$I$&$G$9$+(B
|> $B$M!#(B{} $B$K$O$I$3$K$b(B hash $B$H$$$&C18l$,=P$F$-$^$;$s$7!"5-K!$H(B
|> $B$7$F$b=g=x$,$"$j$^$9$7!#$^$!!"(B1$B<!85$NJ8;zNs$G%W%m%0%i%`$r=q(B
|> $B$/0J>e!"=g=x$NL5$$5-K!$H$$$&$N$O$^$:$"$j$($J$$$o$1$G$9$,(B...
|
|$BF10U$G$9!#(B
| * $B=g=x$rJ]$?$J$$$G8zN($r=E;k$7$?$$>l9g$NA*Br;h$r;D$7$FM_$7$$$G$9!#(B
| * $B%j%F%i%k$K$O=g=x$,$"$k$h$&$K8+$($k$H$$$&0U8+$K$O0lM}$"$j$^$9!#(B
| * $B%j%F%i%kI=5-$rMQ$$$kBgItJ,$N%1!<%9$K$*$$$F!"=g=x$rJ]$D%3%9%H$O(B
| $B5vMF$G$-$k$H;W$$$^$9!#(B
|
|$B$J$N$G(B
| * Hash$B%/%i%9$O8=>u0];}(B
| * $B=>Mh%O%C%7%e%j%F%i%k$H8F$P$l$F$$$?I=5-$O(BHash::Ordered$B$N%j%F%i%k$K!#(B
$BF10U$7$^$;$s!#(B
$B%i%9<g5A$rI8\V$9$k(BRuby$BE*$G$J$$(B
* Hash$B$H$$$&L>A0$O(BHash$B%"%k%4%j%:%`$r;H$C$F$$$k$3$H$7$+0UL#(B
* $B;~4V8zN($K$O=g=x$rJ]$?$J$$$+$I$&$+$O4X78$J$$!#(B
* $B6u4V8zN($K$O$"$kDxEY4X78$,$"$k$,!"$A$c$s$H%Y%s%A%^!<%/$r(B
* $B$H$O$$$(!"%$%s%9%?%s%9JQ?t$d%7%s%\%k%F!<%V%k$K$^$G=g=x$r(B
$BJ]>Z$9$k$N$O$d$j$9$.$J$N$G!"$=$l$O$d$a$kJ}8~$G!#(B
$B$H9M$($F$$$^$9!#$G$9$+$i!">-Mh$"$j$($kAH$_9g$o$;$O(B
* 1.8$B$N$^$^!"=g=x$OF3F~$7$J$$(B
$B%V%k$J$I$K$O$J$$(B)
$B$N$$$:$l$+$G$O$J$$$+$H!#5$;}$AE*$K$O8e<T$K79$$$F$$$^$9!#(B
rails$B$GB?MQ$5$l$F$$$k$h$&$J%-!<%o!<%I0z?t$N$+$o$j$J$I!"(BHash$B%j%F%i%k$N;H(B
$B$o$lJ}$H$7$F$O(B:

* $BMWAG?t$,>/$J$a(B
* $BA4$F$N%-!<CM$r;H$&$3$H$,B?$$(B
* $B?7$7$$CM$rF~$l$k$3$H$O>/$J$$(B
$B!!(B* $B:8$+$i=g$K7+$jJV$9(B($B$H$&$l$7$$!#$3$NOCBj$NH/C<(B)

$B$H$$$&%Q%?!<%s$,B?$$$N$G$O$J$$$+$H;W$$$^$9(B($B4V0c$C$??dB,$+$b$7$l$^$;$s(B
$B$,(B)$B!#$3$N%?%$%W$N;H$o$lJ}$K:GE,$J$N$O$I$l$+!"$"$k$$$O$?$$$7$F0c$$$,$J$$(B
$B$N$+!#$H$$$&$H$3$m$,!"%j%F%i%k$N<BBN$K$U$5$o$7$$%G!<%?9=B$$rA*Br$9$k>e(B
$B$G$N%]%$%s%H$N$R$H$D$@$H;W$$$^$9!#(B

$B$b$7!"%W%m%0%i%_%s%0>e$N8_49@-$r0];}$G$-$k$h$jE,@Z$J%G!<%?9=B$(B($B$I$&$J$s(B
$B$G$7$g$&!)!d%G!<%?9=B$$K>\$7$$J}!9(B)$B$,$"$l$P!"%j%F%i%k$N<BBN$r(BHash$B$+$i$=(B
$B$A$i$K>h$j49$($k$H$$$&A*Br$b$"$j$&$k$N$G$O$J$$$+$H;W$$$^$9!#(B

$BF#K\>0K.(B(hisa)
m-ohkubo-D/cWgrHU08oX2YZ2mxBajc8NsWr+ (Mitsuhiko OHKUBO)
2007-08-24 16:59:53 UTC
Permalink
$BBg5WJ]$H$$$$$^$9!#(BRuby$B=i?4<T$G$9$,$h$m$7$/$*4j$$$7$^$9!#(B


$B;~9o(B 2007/08/24 17:33:11
Yukihiro Matsumoto $B$5$s$O=q$-$^$7$?(B
Post by Yukihiro Matsumoto
$B%i%9<g5A$rI8\V$9$k(BRuby$BE*$G$J$$(B
$B!VBg%/%i%9<g5A!W$,NI$/$o$+$i$+$C$?$N$G$9$,!"!V>/5!G=$N%/%i%9(B
$B$rB??tMQ0U$9$k$h$j$bB?5!G=$J%/%i%9$r>/?tMQ0U$7$^$7$g$&!W$H$$$&$3(B
$B$H$@$m$&!"$H;W$C$F$NDs0F$J$N$G$9$,!"0c$C$F$?$i$4;XE&$/$@$5$$!#(B

Hash$B%$%s%9%?%s%***@8@.;~$K=g=x0];}$NFC@-$r;}$D%O%C%7%e%i%$%V%i(B
$B%j$N<BAu$r;H$&$+!";}$?$J$$%O%C%7%e%i%$%V%i%j$N<BAu$r;H$&$+$r;XDj(B
$B$G$-$k$h$&$K$O$J$i$J$$$G$7$g$&$+!)=g=x0];}$NFC@-$,=EMW$J>l9g$,$"(B
$B$k0lJ}$G!"B>$NFC@-!J%a%b%j;HMQNL$H$+!K$,=EMW$J>l9g$b$"$j$^$9$N$G!"(B
$BA*Br$G$-$kF;$r;D$7$F$*$$$FM_$7$$$G$9!#(B
Post by Yukihiro Matsumoto
$B%V%k$J$I$K$O$J$$(B)
$B>-Mh!"$5$i$K9b@-G=$J%O%C%7%e%i%$%V%i%j$,8=$l$?>l9g$K!"(BHash$B$N(B
$B;EMM$,=g=x0];}$r4^$`$?$a$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$G$-(B
$B$J$$!"$H$$$&>u67$O5/$-F@$k$3$H$J$N$G$7$g$&$+!)(B
$B$b$&0l$D!"F1MM$N>l9g$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$9$k(B
$B$?$a$K(BHash$B$N;EMM$+$i=g=x0];}$,30$5$l$k!"$H$$$&>u67$O5/$-F@$k$3$H(B
$B$J$N$G$7$g$&$+!)(B

$B9b@-G=$J%O%C%7%e%i%$%V%i%j$,MxMQ$G$-$J$+$C$?$j!"F0:n$7$F$$$k(B
$B%3!<%I$,>-MhF0:n$7$J$/$J$C$?$j!"$H$$$C$?$3$H$h$j$O!"(BHash$B$,=g=x0](B
$B;}$NFC@-$r;}$?$J$$$3$H$NJ}$,$^$@4r$7$$$G$9!#<g4Q$G?=$7Lu$J$$$N$G(B
$B$9$,!#(B

$B$=$b$=$b!"8=>u$N%O%C%7%e%i%$%V%i%j$h$j9b@-G=$J%i%$%V%i%j$,=P(B
$B8=$7$=$&$J>p@*$+$I$&$+$rCN$i$J$$$N$G!"%J%s%;%s%9$J$3$H$r?R$M$F$$(B
$B$?$i$*5v$7$/$@$5$$!#(B


*-------*-------*-------*-------*-------*-------*-------*-------
$BBg5WJ](B $B8wI'(B
Yukihiro Matsumoto
2007-08-24 17:34:14 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43936] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Sat, 25 Aug 2007 01:59:53 +0900, m-ohkubo-D/cWgrHU08oX2YZ2mxBajc8NsWr+***@public.gmane.org (Mitsuhiko OHKUBO) writes:

|> * $BA4$/F1$85!G=$G@-<A$@$10[$J$k%/%i%9$rJ#?tMQ0U$9$k$N$OBg%/(B
|> $B%i%9<g5A$rI8\V$9$k(BRuby$BE*$G$J$$(B
| $B!VBg%/%i%9<g5A!W$,NI$/$o$+$i$+$C$?$N$G$9$,!"!V>/5!G=$N%/%i%9(B
|$B$rB??tMQ0U$9$k$h$j$bB?5!G=$J%/%i%9$r>/?tMQ0U$7$^$7$g$&!W$H$$$&$3(B
|$B$H$@$m$&!"$H;W$C$F$NDs0F$J$N$G$9$,!"0c$C$F$?$i$4;XE&$/$@$5$$!#(B

$B$=$&$$$&$h$&$J0UL#$G$9!#(B

| Hash$B%$%s%9%?%s%***@8@.;~$K=g=x0];}$NFC@-$r;}$D%O%C%7%e%i%$%V%i(B
|$B%j$N<BAu$r;H$&$+!";}$?$J$$%O%C%7%e%i%$%V%i%j$N<BAu$r;H$&$+$r;XDj(B
|$B$G$-$k$h$&$K$O$J$i$J$$$G$7$g$&$+!)=g=x0];}$NFC@-$,=EMW$J>l9g$,$"(B
|$B$k0lJ}$G!"B>$NFC@-!J%a%b%j;HMQNL$H$+!K$,=EMW$J>l9g$b$"$j$^$9$N$G!"(B
|$BA*Br$G$-$kF;$r;D$7$F$*$$$FM_$7$$$G$9!#(B

$BA*Br;h$,B?$$J}$,$h$$$+$H8@$&$HI,$:$7$b$=$&$G$O$J$$$N$G$9!#$H(B
$B$$$&$+!"%O%C%7%e%(%s%H%j$R$H$D$"$?$j(B2$B%o!<%I$NA}2C$,LdBj$K$J(B
$B$k$h$&$J6ILL$G$O(BRuby$B$N;HMQ$=$N$b$N$,ITE,@Z$J2DG=@-$,9b$$$H;W(B
$B$$$^$9!#(B

|> * Hash$B$K=g=x$rF3F~$9$k(B($B$?$@$7!"%$%s%9%?%s%9JQ?t$d%7%s%\%k%F!<(B
|> $B%V%k$J$I$K$O$J$$(B)
| $B>-Mh!"$5$i$K9b@-G=$J%O%C%7%e%i%$%V%i%j$,8=$l$?>l9g$K!"(BHash$B$N(B
|$B;EMM$,=g=x0];}$r4^$`$?$a$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$G$-(B
|$B$J$$!"$H$$$&>u67$O5/$-F@$k$3$H$J$N$G$7$g$&$+!)(B
| $B$b$&0l$D!"F1MM$N>l9g$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$9$k(B
|$B$?$a$K(BHash$B$N;EMM$+$i=g=x0];}$,30$5$l$k!"$H$$$&>u67$O5/$-F@$k$3$H(B
|$B$J$N$G$7$g$&$+!)(B

$B$3$l$O(Bknu$B$5$s$N7|G0$G$9$M!#$G$9$,!"%O%C%7%e$H8@$&$N$O$+$J$j8E(B
$BE5E*$J%"%k%4%j%:%`$G$9$7!"$3$l$+$i6KC<$K@-G=$,0c$&%i%$%V%i%j(B
$B$,EP>l$9$k2DG=@-$O$+$J$jDc$$$H;W$$$^$9!#(BJudy$B$N$h$&$J!V%-%c%C(B
$B%7%e%i%$%s$r0U<1$7$?9bB.$G(BHash$B$C$]$$%i%$%V%i%j!W$H$$$&$N$OB8(B
$B:_$7$^$9$,!"(BJudy$B$O(BHash$B$G$O$"$j$^$;$s$7!#(B

$B$^$D$b$H(B $B$f$-$R$m(B /:|)
m-ohkubo-D/cWgrHU08oX2YZ2mxBajc8NsWr+ (Mitsuhiko OHKUBO)
2007-08-24 18:23:02 UTC
Permalink
$BBg5WJ]$G$9!#(B


$BCzG+$J$4JVEz$I$&$b$"$j$,$H$&$4$6$$$^$9!#(B
$***@bL@$$$?$@$-!";d$N7|G0$O[9M+$K=*$o$j$=$&$J0u>]$r;}$A$^$7$?!#(B


$B;~9o(B 2007/08/25 02:34:14
Yukihiro Matsumoto $B$5$s$O=q$-$^$7$?(B
Post by Yukihiro Matsumoto
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
| $B!VBg%/%i%9<g5A!W$,NI$/$o$+$i$+$C$?$N$G$9$,!"!V>/5!G=$N%/%i%9(B
|$B$rB??tMQ0U$9$k$h$j$bB?5!G=$J%/%i%9$r>/?tMQ0U$7$^$7$g$&!W$H$$$&$3(B
$B$=$&$$$&$h$&$J0UL#$G$9!#(B
$BN;2r$7$^$7$?!#(B
Post by Yukihiro Matsumoto
|$B%j$N<BAu$r;H$&$+!";}$?$J$$%O%C%7%e%i%$%V%i%j$N<BAu$r;H$&$+$r;XDj(B
|$BA*Br$G$-$kF;$r;D$7$F$*$$$FM_$7$$$G$9!#(B
$B$$$&$+!"%O%C%7%e%(%s%H%j$R$H$D$"$?$j(B2$B%o!<%I$NA}2C$,LdBj$K$J(B
$B$$$^$9!#(B
$B$3$N%1!<%9$G$O!"%f!<%6$,A*Br$r9T$&%3%9%H$KHf$Y$FF@$i$l$kMx1W(B
$B$,>/$J$$!"$H$$$&$3$H$G$9$M!#N;2r$7$^$7$?!#(B

$B;HMQ$=$N$b$N$,ITE,@Z!"$H$$$&;XE&$O$=$N$H$*$j$+$b$7$l$^$;$s!#(B
$B;d$N>l9g!"<+J,MQ%W%m%0%i%`$rAH$s$G$$$k$N$G!";H$C$F3Z$7$$$N$,0lHV!"(B
Post by Yukihiro Matsumoto
|$B;EMM$,=g=x0];}$r4^$`$?$a$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$G$-(B
| $B$b$&0l$D!"F1MM$N>l9g$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$9$k(B
|$B$J$N$G$7$g$&$+!)(B
$B%7%e%i%$%s$r0U<1$7$?9bB.$G(BHash$B$C$]$$%i%$%V%i%j!W$H$$$&$N$OB8(B
$B:_$7$^$9$,!"(BJudy$B$O(BHash$B$G$O$"$j$^$;$s$7!#(B
$B%O%C%7%e%i%$%V%i%j$O$[$\<Q5M$^$C$F$$$k!"$H$$$&$3$H$J$N$G$9$M!#(B
$BN;2r$7$^$7$?!#(B


*-------*-------*-------*-------*-------*-------*-------*-------
$BBg5WJ](B $B8wI'(B
Masahiro Sugaya
2007-08-25 03:10:27 UTC
Permalink
$B?{C+$G$9!#:#F|$b=k$$$G$9$M!#(B

$B=i?4<T$J$N$GE*30$l$+$b$7$l$^$;$s$,$=$N;~$O$*5v$72<$5$$!#(B

$B%O%C%7%e$K=g=x$,$"$k$H4r$7$$GI$G$9!#(B
Post by m-ohkubo-D/cWgrHU08oX2YZ2mxBajc8NsWr+ (Mitsuhiko OHKUBO)
$BBg5WJ]$G$9!#(B
$BCzG+$J$4JVEz$I$&$b$"$j$,$H$&$4$6$$$^$9!#(B
$B;~9o(B 2007/08/25 02:34:14
Yukihiro Matsumoto $B$5$s$O=q$-$^$7$?(B
Post by Yukihiro Matsumoto
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
| $B!VBg%/%i%9<g5A!W$,NI$/$o$+$i$+$C$?$N$G$9$,!"!V>/5!G=$N%/%i%9(B
|$B$rB??tMQ0U$9$k$h$j$bB?5!G=$J%/%i%9$r>/?tMQ0U$7$^$7$g$&!W$H$$$&$3(B
$B$=$&$$$&$h$&$J0UL#$G$9!#(B
$BN;2r$7$^$7$?!#(B
Post by Yukihiro Matsumoto
|$B%j$N<BAu$r;H$&$+!";}$?$J$$%O%C%7%e%i%$%V%i%j$N<BAu$r;H$&$+$r;XDj(B
|$BA*Br$G$-$kF;$r;D$7$F$*$$$FM_$7$$$G$9!#(B
$B$$$&$+!"%O%C%7%e%(%s%H%j$R$H$D$"$?$j(B2$B%o!<%I$NA}2C$,LdBj$K$J(B
$B$$$^$9!#(B
$B$,>/$J$$!"$H$$$&$3$H$G$9$M!#N;2r$7$^$7$?!#(B
$B;d$N>l9g!"<+J,MQ%W%m%0%i%`$rAH$s$G$$$k$N$G!";H$C$F3Z$7$$$N$,0lHV!"(B
Post by Yukihiro Matsumoto
|$B;EMM$,=g=x0];}$r4^$`$?$a$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$G$-(B
| $B$b$&0l$D!"F1MM$N>l9g$K!"(BHash$B$N<BAu$K$=$N%i%$%V%i%j$rMxMQ$9$k(B
|$B$J$N$G$7$g$&$+!)(B
$B%7%e%i%$%s$r0U<1$7$?9bB.$G(BHash$B$C$]$$%i%$%V%i%j!W$H$$$&$N$OB8(B
$B:_$7$^$9$,!"(BJudy$B$O(BHash$B$G$O$"$j$^$;$s$7!#(B
$B%O%C%7%e%i%$%V%i%j$O$[$\<Q5M$^$C$F$$$k!"$H$$$&$3$H$J$N$G$9$M!#(B
$BN;2r$7$^$7$?!#(B
*-------*-------*-------*-------*-------*-------*-------*-------
$BBg5WJ](B $B8wI'(B
Yukihiro Matsumoto
2007-08-25 03:27:00 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43940] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Sat, 25 Aug 2007 12:10:27 +0900, "Masahiro Sugaya" <easylifenw-***@public.gmane.org> writes:

|$B%O%C%7%e$K=g=x$,$"$k$H4r$7$$GI$G$9!#(B
|$B$?$@!"0E9f%W%m%0%i%`$r=q$$$F$$$k?M$J$s$+$O=g=x$,%i%s%@%`$JJ}$,4r$7$+$C$?$j$7$J$$$G$7$g$&$+!#(B
|
|$B=g=x$"$j$,%G%U%)%k%H$G%O%C%7%e$N%-!<$***@8@.%"%k%4%j%:%`$r$4$C$=$jF~$lBX$($i$l$k%a%=%C%I$,$"$C$?$i$I$&$J$s$G$7$g$&!#(B

$B$&!<$`!"%i%s%@%`$G$"$k$H$$$&$N$O=g=x$K$D$$$F$NFCDj$N2>Dj$rCV(B
$B$1$J$$$H$$$&0UL#$@$H;W$&$N$G!"%;%-%e%j%F%#E*$K0BA4$H$$$&2>Dj(B
$B$bCV$1$J$$$H;W$$$^$9!#=g=x$K$D$$$F$N0BA4@-$,I,MW$G$"$l$P(B($B$=$s(B
$B$J%1!<%9$O;W$$$D$-$^$;$s$,(B)$BL@<(E*$K(Bshuffle$B$9$Y$-$@$H;W$$$^$9!#(B

$B$"$k$$$O;d$bA[A|$b$7$J$$$h$&$J%1!<%9$G(BHash$B$N=g=x$,1F6A$7$F$/(B
$B$k$s$G$7$g$&$+!#(B
sheepman
2007-08-25 08:11:35 UTC
Permalink
$B$3$s$K$A$O!"(Bsheepman $B$G$9!#(B

Hash $B$K=g=x$,J]>Z$5$l$?>l9g!"FbMF$OF1$8$@$1$I=g=x$,0c$&(B Hash $BF1;N$N(B
$BF10lH=Dj$O$I$&$J$k$s$G$7$g$&$+!#(B

{:a => 1, :b => 2} == {:b => 2, :a => 1} #=> ?

Hash#== $B$K=g=x$O9MN8$5$l$k$Y$-$G$O$J$$$H;W$$$^$9$,!"=g=x$b4^$a$?(B
$BF10l@-$rH=Dj$9$k%a%=%C%I$bM_$7$$5$$,$7$^$9!#(BHTML $B$r%Q!<%9$7$F(B Hash
$B$r;H$C$FI=$7$?;~$H$+!#(B

$B$"$H=g=x$,J]>Z$5$l$?(B Hash $B$r(B Marshal#dump,load $B$7$?$H$-$K(B
$B=g=x$OJ]B8$5$l$k$+$b5$$K$J$j$^$9!#(B
--
sheepman / TAMURA Takashi
sheepman-78yw8C/+qEX2m6u2k/U8OUd9k/***@public.gmane.org
Yukihiro Matsumoto
2007-08-25 08:51:20 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43944] $B=g=x$,J]>Z$5$l$?(B Hash $B$NF10l@-(B"
on Sat, 25 Aug 2007 17:11:35 +0900, sheepman <sheepman-78yw8C/+qEX2m6u2k/U8OUd9k/***@public.gmane.org> writes:

|Hash $B$K=g=x$,J]>Z$5$l$?>l9g!"FbMF$OF1$8$@$1$I=g=x$,0c$&(B Hash $BF1;N$N(B
|$BF10lH=Dj$O$I$&$J$k$s$G$7$g$&$+!#(B

$B=g=x$O9MN8$5$l$k$Y$-$G$O$J$$$H;W$$$^$9!#(B

|Hash#== $B$K=g=x$O9MN8$5$l$k$Y$-$G$O$J$$$H;W$$$^$9$,!"=g=x$b4^$a$?(B
|$BF10l@-$rH=Dj$9$k%a%=%C%I$bM_$7$$5$$,$7$^$9!#(BHTML $B$r%Q!<%9$7$F(B Hash
|$B$r;H$C$FI=$7$?;~$H$+!#(B

$BNI$$L>A0$,$"$j$^$9$G$7$g$&$+!#(B

|$B$"$H=g=x$,J]>Z$5$l$?(B Hash $B$r(B Marshal#dump,load $B$7$?$H$-$K(B
|$B=g=x$OJ]B8$5$l$k$+$b5$$K$J$j$^$9!#(B

$BJ]B8$5$l$^$9!#(B
Shugo Maeda
2007-08-24 08:31:24 UTC
Permalink
$BA0ED$G$9!#(B
Post by Tanaka Akira
$B$H$$$&$o$1$G!"(BHash::Ordered $B$H$+$H$7$FJL$K:n$k$N$,$$$$$s$8$c(B
$B$J$$$G$9$+$M!#(B
$B$=$7$F!"%j%F%i%k$N(B {} $B$r(B Hash::Ordered $B$K$9$k$H$+$I$&$G$9$+(B
$B$M!#(B{} $B$K$O$I$3$K$b(B hash $B$H$$$&C18l$,=P$F$-$^$;$s$7!"5-K!$H(B
$B$7$F$b=g=x$,$"$j$^$9$7!#$^$!!"(B1$B<!85$NJ8;zNs$G%W%m%0%i%`$r=q(B
$B$/0J>e!"=g=x$NL5$$5-K!$H$$$&$N$O$^$:$"$j$($J$$$o$1$G$9$,(B...
$B6u$N(BHash$B$r:n$k;~$K(BHash.new$B$NBe$j$K(B{}$B$r;H$C$F$$$k%3!<%I$,B?$$(B
$B$N$G!"$+$J$j$NItJ,$O<B:]$K$O(BHash::Ordered$B$,;H$o$l$k$3$H$K$J$k(B
$B$N$G$O$J$$$G$7$g$&$+!#(B

excelsior:ruby-trunk$ fgrep '= {}' lib/**/*.rb|wc -l
377
excelsior:ruby-trunk$ fgrep '= Hash.new' lib/**/*.rb|wc -l
40

$B6KC<$K(BHash$B$r$h$/;H$&%W%m%0%i%`0J30$G%a%b%j8zN($,$=$l$[$I0-$/(B
$B$J$1$l$P!"(BHash$B$=$N$b$N$K=g=x$rIU$1$F$7$^$&J}$,$9$C$-$j$7$F$$(B
$B$F$h$$$H;W$$$^$9!#(B
# $B8zN(>e$NLdBj$,Bg$-$1$l$P!"AH$_9~$_$N=g=xIU(BHash$B$O$"$-$i$a$k(B
# $B$H$$$&$3$H$G!#(B
$B$^$?!"8_49@-$K4X$7$F$O!"(B1.8$B"*(B1.9$B$G8_49@-$,J]$?$l$F$$$l$P!"$=(B
$B$l$[$IBg$-$JLdBj$G$O$J$$$N$G$O$J$$$G$7$g$&$+!#(B
$B0lHLE*$K(BHash$B$K=g=x$r4|BT$9$Y$-$G$J$$$H$$$&$N$O$=$NDL$j$@$H;W(B
$B$&$N$G$9$,!"$@$+$i$H$$$C$F(BRuby$B$N(BHash$B$K=g=x$,$"$C$F$O$$$1$J$$(B
$B$H$$$&$3$H$O$J$$$H;W$$$^$9!#(B
$B$=$l$K(BArray$B$K$b$$$m$s$J%3%l%/%7%g%s(B(queue/stack$B$J$I(B)$B$N5!G=$,(B
$B5M$a9~$^$l$F$^$9$h$M!#(B
--
$BA0ED(B $B=$8c(B
Tanaka Akira
2007-08-24 09:52:55 UTC
Permalink
Post by Shugo Maeda
$B6KC<$K(BHash$B$r$h$/;H$&%W%m%0%i%`0J30$G%a%b%j8zN($,$=$l$[$I0-$/(B
$B$J$1$l$P!"(BHash$B$=$N$b$N$K=g=x$rIU$1$F$7$^$&J}$,$9$C$-$j$7$F$$(B
$B$F$h$$$H;W$$$^$9!#(B
$B$^$!!"$=$l$b$$$$$s$8$c$J$$$G$9$+!#(B
Post by Shugo Maeda
# $B8zN(>e$NLdBj$,Bg$-$1$l$P!"AH$_9~$_$N=g=xIU(BHash$B$O$"$-$i$a$k(B
# $B$H$$$&$3$H$G!#(B
$B!V6KC<$K(BHash$B$r$h$/;H$&%W%m%0%i%`!W$,$I$N$/$i$$$"$k$+$G$9$+$M$'!#(B
$B6qBNE*$K$O$J$K$,$"$k$N$@$m$&(B?

$B$?$@!"8+$D$+$C$?$H$7$F!"$=$l$rB,Dj$9$k$K$O$^$:%$%s%9%?%s%9JQ(B
$B?t$J$I$K$O=g=x$,$J$/$F!"(BHash $B$K$O=g=x$,$"$k!"$H$$$&(B Ruby $B$,(B
$BI,MW$K$J$j$^$9$,!#(B
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
Yukihiro Matsumoto
2007-08-24 10:04:28 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43931] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Fri, 24 Aug 2007 18:52:55 +0900, Tanaka Akira <akr-***@public.gmane.org> writes:

|$B!V6KC<$K(BHash$B$r$h$/;H$&%W%m%0%i%`!W$,$I$N$/$i$$$"$k$+$G$9$+$M$'!#(B
|$B6qBNE*$K$O$J$K$,$"$k$N$@$m$&(B?

occur.rb? $B$+$J$j?M9)E*$G$9$M!#(B

|$B$?$@!"8+$D$+$C$?$H$7$F!"$=$l$rB,Dj$9$k$K$O$^$:%$%s%9%?%s%9JQ(B
|$B?t$J$I$K$O=g=x$,$J$/$F!"(BHash $B$K$O=g=x$,$"$k!"$H$$$&(B Ruby $B$,(B
|$BI,MW$K$J$j$^$9$,!#(B

($B$d$k5$$K$J$l$P(B)$B$J$+$@$5$s$,6a$$$&$A$K:n$C$F$/$@$5$k$N$G$O$J(B
$B$$$+$H!#(B
Tanaka Akira
2007-08-29 09:56:27 UTC
Permalink
Post by Yukihiro Matsumoto
occur.rb? $B$+$J$j?M9)E*$G$9$M!#(B
$B;n$7$F$_$^$7$?$,!"(Bst $B$N%a%b%j>CHq$h$j(B heap $B$N$[$&$,B?$$$G$9$M!#(B

key $B$,(B String $B$G!"$=$l$>$l$K>/$J$/$H$b(B 20byte $B$O>CHq$9$k$N$G!"(B
struct st_table_entry $B$,;YG[E*$K$J$k$H$O$$$+$J$$$h$&$G$9!#(B
$B$^$!!"(B2 word $BA}2C$N1F6A$O$_$F$H$l$^$9$,!#(B

1.8 $B$@$H!"(BString $B$N%a%b%j>CHq$,$5$i$KBg$-$$$;$$$+!"A4BN$H$7(B
$B$F$N>CHq$O=g=x$D$-$N(B 1.9 $B$h$j$bA}$($^$9!#(B

$B$b$C$H(B 2 word $BA}2C$N1F6A$,L\N)$D$b$N$,$"$k$H$7$?$i!"(Bkey,
value $B$,N>J}(B Fixnum $B$H$+$J%"%W%j%1!<%7%g%s$G$9$+$M$'!#(B
--
[$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira]
NISHI Takao
2007-08-24 10:20:07 UTC
Permalink
$B$K$7!w$*$+$d$^$G$9!#(B

At Fri, 24 Aug 2007 18:52:55 +0900,
Post by Tanaka Akira
$B!V6KC<$K(BHash$B$r$h$/;H$&%W%m%0%i%`!W$,$I$N$/$i$$$"$k$+$G$9$+$M$'!#(B
$B!V$h$/$D$+$&!W$C$F$N$K3:Ev$9$k$+$I$&$+$OITL@$G$9$,!$(BREXML$B$G$O%?%0$NB0(B
$B@-$rJ]B8$9$k$N$K(BHash$B$N%5%V%/%i%9$r;H$C$F$^$9!#(B

$BBg$-$J(BXML$BJ8=q$r?)$o$;$k$H(BHash$B$,BgNL$***@8@.$5$l$k$3$H$K$J$k$N$G!$%\%G%#(B
$B%V%m!<$N$h$&$K8z$$$F$-$=$&!#(B
--
NISHI Takao D add ninth Co.,Ltd. http://www.Dadd9.com/
1-2-24 Toyonari, Okayama, 700-0942, Japan @@@@
Phone:+81-86-801-4216 Facsimile:+81-86-801-4217 OO/
PGP:1466 BB16 3186 CC11 1A06 713C 5518 3A2A A122 118A -|/
Shin'ya Adzumi
2007-08-21 12:54:27 UTC
Permalink
$B$"$E$_$G$9!#(B

$B$"$i$"$i$"$i$C$F46$8$G$"$C$5$jF~$C$A$c$$$^$7$?$M$(!#(B
Post by SASADA Koichi
$B!!M}M3$O$J$s$G$7$g$&!#<BAu>e$?$^$?$^=g=x$,J]>c$5$l$F$$$k$H$$$&$N$ONI(B
$B$$$G$7$g$&$+!#$=$l$H$b!"$3$l$b:.Mp$r>7$/!JJ]>c$5$l$F$k$H;W$C$F$I$s$I(B
$B!V$?$^$?$^!W$J$s$FET9g$N$$$$***@MU$,DLMQ$7$^$9$+$M$(!#(B
$B8D?ME*$K$OIT9,$JL$Mh$,BT$C$F$k$h$&$K$7$+;W$($J$$$G$9!#(B

$B$=$b$=$b!V$?$^$?$^!W$J$i<BAu$9$k%a%j%C%H$C$F$"$k$s$G$7$g$&$+!#(B
$B$[$H$s$ICY$/$J$i$J$+$C$?$@$1$G!"%a%b%j$O?)$&$7!"%G%a%j%C%H$7$+$J$$$h$&$J!#(B
$BA0$N%Q%C%A$GB.$/$J$k$J$i!"=g=x$rJ]>Z$7$J$/$F$bB.$/$J$k$s$8$c$J$$!)$H;W$&$N$OC;Mm$9$.!)(B
$B%j%F%i%k$G4JC1$K=q$1$k$+$i!"(BHash $B$,$$$m$s$J;H$o$lJ}$7$A$c$&$C$F$bBg$-$$$s$G$7$g$&$M!#(B


$***@Q?-Lo(B
adzumi-***@public.gmane.org
pegacorn
2007-08-21 14:44:41 UTC
Permalink
$B!VJ]>Z$9$k!W$N$b!V$?$^$?$^!W$J$N$bH?BP$G$9!#(B

From: SASADA Koichi <ko1-UVGkOX9qf+***@public.gmane.org>
Date: Tue, 21 Aug 2007 19:29:11 +0900
Message-Id: <46CABE7A.2040700-UVGkOX9qf+***@public.gmane.org>
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post by SASADA Koichi
$B!!M}M3$O$J$s$G$7$g$&!#<BAu>e$?$^$?$^=g=x$,J]>c$5$l$F$$$k$H$$$&$N$ONI(B
$B$$$G$7$g$&$+!#$=$l$H$b!"$3$l$b:.Mp$r>7$/!JJ]>c$5$l$F$k$H;W$C$F$I$s$I(B
$B!~!VJ]>Z$9$k!W$N>l9g(B

$B!&J]>Z$5$l$J$/$F$bNI$$>l9g$G$b!"%a%b%j$N;HMQNL$,(B 5/3 $BG\$K$b$J$k$N$O(B
$B<uF~$lFq$$(B

$B!&J]>Z$5$l$J$/$F$bNI$$>l9g$G$b!"CY$/$J$k$+$b$7$l$J$$(B
# $BLu$"$C$F<BL3E*$J%9%/%j%W%H$H%G!<%?$,A4$/<j85$KL5$$$N$G!"(B
# $B<B:]B.$/$J$kJ}$,B?$$$N$+>/$J$$$N$+$o$+$j$^$;$s$,!"(B
# $B%a%b%j$N;HMQNL$,(B 5/3 $BG\$K$b$J$k$HB.EYDc2<$r$b$?$i$95$$,$7$^$9!#(B
$B!&$=$l$,LdBj$K$J$k$[$IB?MQ$5$l$k$H$O;W$o$J$$(B


$B!~!V$?$^$?$^!W$N>l9g(B

$B!&%a%b%j$N;HMQNL$,(B 5/3 $BG\$K$b$J$k$N$O<uF~$lFq$$(B

$B!&:.Mp$r>7$/$+$b$7$l$J$$(B
$B!JJ]>c$5$l$F$k$H;W$C$F%3!<%I$r=q$$$F$7$^$&?M$,=P$F$/$k$+$b$7$l$J$$!K(B
# Hash $B$G$O$"$j$^$;$s$,!"(BC++ $B$G=i$a$F%W%m%0%i%`$r=q$$$?$H$-$K!"(B
# std::map $B$r<BAu$G;H$C$F=g=x@-$r4|BT$5$;$k$Y$-$G$J$$>lLL$G(B
# $B=g=x@-$rJ]>Z$7$F$7$^$C$?7P83$,$"$j$^$9!D(B orz

$B!&CY$/$J$k$+$b$7$l$J$$(B

$B!&B.$/$J$k$+$b$7$l$J$$$H$$$&0J30$KMxE@$,L5$$(B


--
pegacorn
SASADA Koichi
2007-08-21 05:13:45 UTC
Permalink
$B!!@*$$$GF~$C$F$7$^$C$?$s$G$9$,!"!V:#8e!"(BRuby $B$G$O(B Hash $B$***@8@.=g$K(B
iterate $B$9$k!W$H$$$&$N$r;EMM$H$7$FDj$a$F$7$^$C$F$b$$$$$N$+!"$A$g$C$H(B
$BIT0B$K$J$C$F$$$^$9!#(B

$B!!L$Dj5A$@$1$I!"$?$^$?$^<BAu$,$3$&$J$C$F$$$k$N$+!"$=$l$H$b(B Ruby $B$O:#(B
$***@8@.=g$rJ]B8$9$k$s$G$9$h!"$H$$$&$N$+!#(B

$B!!$I$&$7$?$b$s$G$7$g$&$+!#(B


$B!!$A$J$_$K!"(Breorder_by{} $B$J$s$F%a%=%C%I$b$"$C$F$$$$$H;W$&$s$G$9$,!"(B
$B?7$7$$%(%s%H%j$,DI2C$5$l$?$iL5;k$9$k$7$+$J$$$J$!!"$H;W$&!#(B
--
// SASADA Koichi at atdot dot net
Yukihiro Matsumoto
2007-08-21 05:31:20 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:43894] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Tue, 21 Aug 2007 14:13:45 +0900, SASADA Koichi <ko1-UVGkOX9qf+***@public.gmane.org> writes:

|$B!!@*$$$GF~$C$F$7$^$C$?$s$G$9$,!"!V:#8e!"(BRuby $B$G$O(B Hash $B$***@8@.=g$K(B
|iterate $B$9$k!W$H$$$&$N$r;EMM$H$7$FDj$a$F$7$^$C$F$b$$$$$N$+!"$A$g$C$H(B
|$BIT0B$K$J$C$F$$$^$9!#(B
|
|$B!!L$Dj5A$@$1$I!"$?$^$?$^<BAu$,$3$&$J$C$F$$$k$N$+!"$=$l$H$b(B Ruby $B$O:#(B
|$***@8@.=g$rJ]B8$9$k$s$G$9$h!"$H$$$&$N$+!#(B
|
|$B!!$I$&$7$?$b$s$G$7$g$&$+!#(B

$BEvLL$OA0<T!VL$Dj5A$@$1$I!"$?$^$?$^<BAu$,$3$&$J$C$F$$$k!W$GDL(B
$B$7$^$7$g$&!#F1$8M}M3$G(Breverse_each$B$OF3F~$7$^$;$s!#(B

|$B!!$A$J$_$K!"(Breorder_by{} $B$J$s$F%a%=%C%I$b$"$C$F$$$$$H;W$&$s$G$9$,!"(B
|$B?7$7$$%(%s%H%j$,DI2C$5$l$?$iL5;k$9$k$7$+$J$$$J$!!"$H;W$&!#(B

reorder_by{}$B$C$F$J$K$9$k$N!)(B $B%V%m%C%/CM$G%(%s%H%j$r%=!<%H$9(B
$B$k!)(B $B$&!<$`!#(B
SASADA Koichi
2007-08-21 05:45:13 UTC
Permalink
Post by Yukihiro Matsumoto
reorder_by{}$B$C$F$J$K$9$k$N!)(B $B%V%m%C%/CM$G%(%s%H%j$r%=!<%H$9(B
$B$k!)(B $B$&!<$`!#(B
$B!!$=$&$=$&!#$G!"?7$7$$%(%s%H%j$,2C$o$C$?$i!"$=$N=gHV$OL5;k$7$F8e$m$K(B
$B$/$C$D$1$k$@$1!"$H$$$&$D$b$j$G$7$?!#(B

$B!!0lHL2=$r9M$($k$H(B order $B$r7h$a$k(B Proc $B$rEPO?$7$F1>!9!"$K$J$k$s$G(B
$B$7$g$&$+!#(Bmarshal $B$G$-$J$/$J$k$N$G7y$@!"$H8@$C$F$k?M$b$$$^$7$?$,!"$I(B
$B$s$J$b$s$G$9$+$M!#(B
--
// SASADA Koichi at atdot dot net
T.Murayama
2007-08-21 08:06:53 UTC
Permalink
$BIaCJ$O(BROM$B$GK:$l$?:"$K=q$-9~$s$G$kB<;3$G$9!%(B
Post by pegacorn
$B%=!<%H$N4p=`$rDj5A$9$k%*%V%8%'%/%H$r;XDj$5$;$l$P!"(B
$B$I$&$$$&=g=x$K$G$b$G$-$k$H;W$$$^$9!#(B
# C++ $B$N(B std::map $B$N(B 3 $BHVL\$N%F%s%W%l!<%H0z?t$r%$%a!<%8$7$^$7$?!#(B
$B=g=x$E$1$O2DG=$G$9$,!$0UL#$N$J$$=g=xIU$1$H$J$k>l9g$b$"$k$H;W$$$^$9!%(B
$B!t%@%C%/%?%$%T%s%0E*$K$O5vMFHO0O$+$b$7$l$^$;$s$1$I!%(B

$BNc$($P!VETF;I\8)$r(B($BKL$NJ}$+$i(B)$B=gHV$KJB$Y$k!W>l9g$J$I$b7k9=Lq2p$G$9$h!%(B
Post by pegacorn
$B!!0lHL2=$r9M$($k$H(B order $B$r7h$a$k(B Proc $B$rEPO?$7$F1>!9!"$K$J$k$s$G(B
$B$s$J$b$s$G$9$+$M!#(B
Java$B20$N;kE@$G$$$($P!$(B
- Comparable$B%$%s%?!<%U%'!<%9$r<BAu$7$F!$$=$N%*%V%8%'%/%H<+?H$KHf3S$5$;$k!%(B
- $B=g=xIU$1$r$5$;$k(B Comparator$B%*%V%8%'%/%H$r:n$k!%(B
$B$N$$$:$l$+$G$9$M!%(BComparable$B$O$=$N%*%V%8%'%/%H<+?H$,<+A3$J=g=xIU$1$GHf3S2DG=$G$"$k(B
$B$3$H$rI=$7$^$9!%$7$+$7Hf3S2DG=$G$J$$!$Nc$($PCM$rI=$9%*%V%8%'%/%H$J$I0J30$G$O!$(B
$BJ#?t$N=g=xIU$1$,Dj5A2DG=$H$$$&$3$H$b$"$C$F!$$"$^$j?d>)$5$l$F$$$^$;$s!%(B

$B$J$*0lHLE*$K$O(Bequals$B%a%=%C%I(B($BF1CM@-Hf3S%a%=%C%I!%(BRuby$B$@$H(B"=="$B$G$7$?$C$1!)(B)$B$H$N(B
$B0l4S@-$,5a$a$i$l$^$9!%(B
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Comparable.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Comparator.html

$BF1$8$K$9$kI,MW$O$J$$$H;W$$$^$9$,;29M$^$G$K!%(B


$B$D$$$G$K8@$&$H(BJava$B$G$O(B
$B!&=g=x$rJ]B8$7$J$$(BHash
$B!&=g=x$rJ]B8$9$k5!G=IU$-(BHash
$B$OJL!9$NJ*$H$7$F<BAu$9$k$G$7$g$&$M!%(BHash$B$O$"$/$^$G%O%C%7%eI=!%(B
$B%O%C%7%eI=$H0[$J$kJ*$K$O0[$J$kL>A0$N0[$J$k%/%i%9$rMQ0U$9$k$H;W$$$^$9!%(B
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/SortedMap.html

$B$=$&$7$J$$$H7W;;NL$N%*!<%@!<$H$+$,JQ$o$C$A$c$&$7!$=g=xIU$-$K$9$kJ,$K$OLdBj$J$/$F$b!$(B
$B0lEY!V=g=xIU$-!W$HDj5A$7$F$"$H$+$i!V$d$C$Q$7$d$a$?!W$H$9$k$H%P!<%8%g%s4V$N8_49@-LdBj$K(B
$BH/E8$9$k$N$G>&MQ$N(BWeb$B7O%7%9%F%`$J$I$G$OFC$K7y$o$l$^$9!%(B
--
I am locutus of Gmail. Resistance is FUTILE!! <locutus1701e-***@public.gmane.org>
Yoshiyuki Uehara
2007-08-23 02:44:13 UTC
Permalink
$B?"86$H$$$$$^$9!#(B

# $B$$$^$5$i$G$9$,!D(B
Post by T.Murayama
$B!&=g=x$rJ]B8$7$J$$(BHash
$B!&=g=x$rJ]B8$9$k5!G=IU$-(BHash
$B$OJL!9$NJ*$H$7$F<BAu$9$k$G$7$g$&$M!%(BHash$B$O$"$/$^$G%O%C%7%eI=!%(B
$B%O%C%7%eI=$H0[$J$kJ*$K$O0[$J$kL>A0$N0[$J$k%/%i%9$rMQ0U$9$k$H;W$$$^$9!%(B
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/SortedMap.html
Java $B$G$O%$%s%?!<%U%'!<%9$H$7$F(B

Map: $B%-!<!"CM$N%Z%"$rJ];}$9$k(B
SortedMap: $B%-!<$,%=!<%H$5$l$?(B Map

$B$N#2$D$,$"$j$^$9$,!"<BAu$K$O2<5-$N#3$D$,$"$j$^$9!#(B

HashMap: Map$B$N<BAu!#%-!<$N=g=x$rJ]>Z$7$J$$!#(B
TreeMap: SortedMap$B$N<BAu!#%-!<$,%=!<%H$5$l$F$$$k!#(B
LinkedHashMap: Map$B$N<BAu(B(HashMap$B$N%5%V%/%i%9(B)$B!#(B
$BM=B,2DG=$J7+$jJV$7=g=x(B($B%-!<$NDI2C=g(B)$B$r;}$D!#(B

http://www.hellohiro.com/map.htm
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/LinkedHashMap.html

$B8D?ME*$K$O(B Java $B$N3+H/$G(B LinkedHashMap $B$r;HMQ$9$k$3$H$O7k9=$"$j$^$9!#(B
# $B%F%9%H%1!<%9$N(B expected $B5-=R$d!"(BWeb $B%"%W%j$G(B select $B$N85%G!<%?$J$I!#(B
u***@public.gmane.org
2007-08-23 03:59:43 UTC
Permalink
$B;a5W$H$$$$$^$9!#(B

$B4{$K>/$75DO@$K5s$2$i$l$F$$$^$7$?$,!D(B
Hash$B$H$$$&L>A0$+$iL@$i$+$K=g=x$r4|BT$7$J$/$J$j$^$9$,(B
$B$=$l$G$b=g=x$r4|BT$9$k$H$-$K(BHash$B$r;H$$$?$/$J$k$3$H$,$"$k$N$O(B
Hash$B$K$***@lMQ$N%j%F%i%k$,$"$k$+$i$G$7$g$&!#(B
$BG[Ns!"%7%s%\%k!"@55,I=8=!"(BRange$B$J$I$bF1MM$G$9!#(B

[:a => 1, :b => 2]$B$r(BOrderedHash$B$K$9$k$H!"(B[{:a => 1, :b => 2}]$B$+$I$&$+$N(B
$B8_49@-$NLdBj$,$"$k$N$G!"$3$3$***@55,I=8=$r8+=,$C$F(B

{:a => 1, :b => 2}o

$B$N$h$&$KKvHx$K$J$K$+IU$1$k$H$$$&$N$O$I$&$G$7$g$&$+!#(B


# $B8D?ME*$K$O!"(BSet$B$O(B{:a, :b, :c, :d}$B$N$h$&$K(B
# $B=q$1$k$h$&$K$J$C$FM_$7$$$H;W$C$F$k?M(B
pegacorn
2007-12-27 11:53:40 UTC
Permalink
From: Yukihiro Matsumoto <matz-X+L+***@public.gmane.org>
Date: Tue, 21 Aug 2007 14:31:20 +0900
Message-Id: <E1INMKs-0000Eg-***@x31>
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post by Yukihiro Matsumoto
|iterate $B$9$k!W$H$$$&$N$r;EMM$H$7$FDj$a$F$7$^$C$F$b$$$$$N$+!"$A$g$C$H(B
|$BIT0B$K$J$C$F$$$^$9!#(B
|
|
|$B!!$I$&$7$?$b$s$G$7$g$&$+!#(B
$B$7$^$7$g$&!#F1$8M}M3$G(Breverse_each$B$OF3F~$7$^$;$s!#(B
http://svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/doc/NEWS
Post by Yukihiro Matsumoto
* Hash
o preserving item insertion order
$BJ]>c$9$k$3$H$K$7$?$N$G$7$g$&$+!)(B
--
pegacorn
Yukihiro Matsumoto
2007-12-27 13:25:05 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:44408] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Thu, 27 Dec 2007 20:53:40 +0900, pegacorn <subscriber.jp-***@public.gmane.org> writes:

|> $BEvLL$OA0<T!VL$Dj5A$@$1$I!"$?$^$?$^<BAu$,$3$&$J$C$F$$$k!W$GDL(B
|> $B$7$^$7$g$&!#F1$8M}M3$G(Breverse_each$B$OF3F~$7$^$;$s!#(B
|
|http://svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/doc/NEWS
|> * Hash
|> o preserving item insertion order
|
|$BJ]>c$9$k$3$H$K$7$?$N$G$7$g$&$+!)(B

$B!V;d$?$A$N!W(B1.9$B$K$D$$$F$OJ]>Z$7$^$9!#(BJRuby$B$N?M$?$A$b$=$&$9$k(B
$B$3$H$K$7$?$=$&$G$9!#(B
pegacorn
2007-12-27 14:22:32 UTC
Permalink
From: Yukihiro Matsumoto <matz-X+L+***@public.gmane.org>
Date: Thu, 27 Dec 2007 22:25:05 +0900
Message-Id: <E1J7sjX-0007XR-***@localhost>
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post by Yukihiro Matsumoto
$B!V;d$?$A$N!W(B1.9$B$K$D$$$F$OJ]>Z$7$^$9!#(BJRuby$B$N?M$?$A$b$=$&$9$k(B
$B$3$H$K$7$?$=$&$G$9!#(B
$B$h$/$o$+$i$J$$$N$G$9$,!D(B

$B$^$D$b$H$5$sC#$,3+H/!&G[I[$9$k(B Ruby $***@8l$N=hM}7O$G$OJ]>c$9$k$,!"(B
Ruby $***@8l$H$7$FJ]>c$9$k$o$1$G$O$J$$!#(B
$B$^$?!"(B1.9 $B$G$OJ]>c$9$k$,!":#8e!J(B2.0 $B0J9_!K$bJ]>c$9$k$+$OL$Dj!#(B

$B$H$$$&$3$H$G$7$g$&$+!)(B
--
pegacorn
Yukihiro Matsumoto
2007-12-27 14:27:42 UTC
Permalink
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-list:44410] Re: Hash$B$X$***@8@.=g$OJ]>c$5$l$J$$$N$+!)(B"
on Thu, 27 Dec 2007 23:22:32 +0900, pegacorn <subscriber.jp-***@public.gmane.org> writes:

|> $B!V;d$?$A$N!W(B1.9$B$K$D$$$F$OJ]>Z$7$^$9!#(BJRuby$B$N?M$?$A$b$=$&$9$k(B
|> $B$3$H$K$7$?$=$&$G$9!#(B
|
|$B$h$/$o$+$i$J$$$N$G$9$,!D(B
|
| $B$^$D$b$H$5$sC#$,3+H/!&G[I[$9$k(B Ruby $***@8l$N=hM}7O$G$OJ]>c$9$k$,!"(B
| Ruby $***@8l$H$7$FJ]>c$9$k$o$1$G$O$J$$!#(B
| $B$^$?!"(B1.9 $B$G$OJ]>c$9$k$,!":#8e!J(B2.0 $B0J9_!K$bJ]>c$9$k$+$OL$Dj!#(B
|
|$B$H$$$&$3$H$G$7$g$&$+!)(B

* Ruby$B$N;EMM$H$$$&J8=q$OB8:_$7$J$$(B
* $BB>$N=hM}7O$,87L)$K=>$&5AM}$O$J$$(B

$B$H$$$&A0Ds>r7o$G!***@8l$H$7$FJ]>Z!W$,$J$K$r0UL#$9$k$N$+$,$=$b(B
$B$=$bITL@$G$9$h$M!#$H$j$"$($:!"(B2.0$B$G=gHV$rJ]>Z$7$J$/$J$kM=Dj(B
$B$O$J$$$H$@$18@$C$F$*$-$^$9!#(B

Tetsuo Sakaguchi
2007-08-21 14:14:34 UTC
Permalink
$B:e8}$G$9!#(B

$B$A$g$C$H%Y%s%A%^!<%/$NCM$,5$$K$J$C$?$N$G!"%Q%C%A$r(B
$BGA$$$F$_$?$N$G$9$,!"$A$g$C$H5$$K$J$kE@$r8+$D$1$^$7$?!#(B
$B!J=EH"$N3Q$G$7$+$J$$$+$b$7$l$^$;$s$,!#!#!K(B
Post by Nobuyoshi Nakada
http://www.rubyist.net/~nobu/ruby/ordered-hash-1.9.diff
http://www.rubyist.net/~nobu/ruby/ordered-hash-1.8.diff
$B$3$N%Q%C%A!"(Brehash$B$N%a%b%j$N3d$jEv$F$,(B Calloc(=calloc) $B$+$i!"(B
xrealloc $B$KJQ99$5$l$F$$$^$9$M!#(B
$B$3$N%Q%C%A$K$h$C$F(Brehash$B;~$N!V(B0$B=i4|2=!W=hM}$NJ,$O>/$J$/$H$b(B
$BB.$/$J$k$H;W$&$N$G!"$=$l$K$h$C$F!J$"$kDxEY!KAj;&$5$l$F$$$k$H$$$&$3$H$O(B
$B$J$$$G$7$g$&$+!)(B

($B$"$H!";d$,7W$k$H%V%m%C%/$r(B { sg.generate; sg.generate } $B$N$_$K$7$?;~$H(B
add to empty hash$B$rHf3S$7$?$i!"(B1.579real : 1.796real $B$N$h$&$K$J$C$?$N$G!"(B
$B:G=i$N(B2$B$D$O$I$A$i$+$H$$$&$H%7%s%\%***@8@.$N;~4V$,$+$J$j$***@j$a$k$h$&$G$9!#(B
$B4D6-$K$b$h$k$H;W$$$^$9$,!#(B)

PS. $B;~4V$,$H$l$l$P4D6-@0$($F<+J,$G%Q%C%A$rEv$F$F$_$h$&$+$H$b;W$$$^$9$,!"!"!#(B
--
$B:e8}E/CK!w?^=q4[>pJs%a%G%#%"8&5f2J!%Bg3X1!!%C^GHBg3X(B
Tetsuo SAKAGUCHI.
Graduate School of Library, Information and Media Studies
University of Tsukuba, JAPAN.
Tetsuo Sakaguchi
2007-08-22 12:06:00 UTC
Permalink
$B:e8}$G$9!#(B
$B$A$g$C$H$?$a$7$?$1$I!"C1=c$K(B(ordered-hash$BH4$-$G$O(B)$BE,MQ$G$-$J$$$N$G!"(B
Post by Tetsuo Sakaguchi
$B$3$N%Q%C%A!"(Brehash$B$N%a%b%j$N3d$jEv$F$,(B Calloc(=calloc) $B$+$i!"(B
xrealloc $B$KJQ99$5$l$F$$$^$9$M!#(B
$BC1=c$K(B Calloc -> xmalloc $B$K$7$F$_$?$b$N$G!"%Y%s%A%^!<%/$7$F$_$^$7$?!#(B
(diff $B$OE:IU$7$F$*$-$^$9!#%(%$$d$C$H:n$C$?$N$G!"%_%9$,$"$k$+$b!#!#(B)

$B8+$l$P$o$+$kDL$j!"Ev$?$jA0$G$9$,A4BN$H$7$F@-G=$,$=$3$=$3>e$,$C$F$$$^$9!#(B
(clear $B$,Mn$A$F$$$k$h$&$K8+$($k$1$I!"$3$NCM$@$HB,Dj8m:9$H$+B>Ii2Y$N(B
$BMW0x$OL5;k$G$-$J$$$7!#!#!#$b$&$A$g$C$HD9;~4V$G7W$i$J$$$H!#!#(B)

$B$4;29M$^$G!#(B

$B8D?ME*$K$O!"AH$_9~$_%/%i%9$O4pK\E*$J5!G=$K9J$C$F$*$$$F!"***@8E*$J(B
$B5!G=$r;}$?$;$k>l9g$G$b!"B.EY$d5-21;HMQNL$NA}2C$O$;$$$<$$?t(B%$BDxEY$^$G$N(B
$B$b$N$K$7$F$*$$$FM_$7$$$H;W$$$^$9$,!"!"!#(B
(awk $B$NO"A[G[Ns$G$bMWAG$NDI2C=g=x$OJ]B8$5$l$^$;$s$7!"!"!"!#(B)


1.8.6-p36 $B$N$^$^(B
user system total real
add to empty hash 1.150000 0.020000 1.170000 ( 1.177728)
add to hash with 100000 elements 1.950000 0.030000 1.980000 ( 1.978130)
each_key with 200000 elements 0.100000 0.000000 0.100000 ( 0.099460)
keys.sort_by.each, 200000 elements 2.350000 0.030000 2.380000 ( 2.373399)
delete 100000 times, non-existing key 0.060000 0.000000 0.060000 ( 0.062486)
delete 100000 times, existing keys 0.490000 0.000000 0.490000 ( 0.487005)
include? 100000 times, non-existing key 0.060000 0.000000 0.060000 ( 0.054519)
include? 100000 times, existing keys 0.400000 0.000000 0.400000 ( 0.401355)
clear hash with 100000 elements 0.020000 0.000000 0.020000 ( 0.022875)

rehash $B$G!"(BCalloc -> xmalloc $B$7$?$b$N(B
user system total real
add to empty hash 0.960000 0.010000 0.970000 ( 0.978789)
add to hash with 100000 elements 1.680000 0.020000 1.700000 ( 1.692938)
each_key with 200000 elements 0.080000 0.000000 0.080000 ( 0.085035)
keys.sort_by.each, 200000 elements 1.610000 0.020000 1.630000 ( 1.629927)
delete 100000 times, non-existing key 0.050000 0.000000 0.050000 ( 0.047612)
delete 100000 times, existing keys 0.320000 0.000000 0.320000 ( 0.326661)
include? 100000 times, non-existing key 0.040000 0.000000 0.040000 ( 0.043253)
include? 100000 times, existing keys 0.380000 0.010000 0.390000 ( 0.373585)
clear hash with 100000 elements 0.040000 0.000000 0.040000 ( 0.047428)

--
$B:e8}E/CK!w?^=q4[>pJs%a%G%#%"8&5f2J!%Bg3X1!!%C^GHBg3X(B
Tetsuo SAKAGUCHI.
Graduate School of Library, Information and Media Studies
University of Tsukuba, JAPAN.
Masahiro Utsumi
2007-08-20 23:14:22 UTC
Permalink
# $B=PCY$l$?$N$G!"%l%9$9$Y$-%a!<%k$,H=$i$J$/$J$C$F$7$^$C$?$N$G!"(B
$B<j6a$J$N$K(B
Hash $B$G=g=x$rJ]B8$7$F$/$l$k$H4r$7$$$3$H$O$"$j$^$9!#(B
$B$b$H$b$H(B Key $B$G%=!<%H$5$l$F$k%G!<%?$r(BHash$B$K<h$j$3(B
$B$s$G(B
$B$j$^$9!#(B
$B;d$b=g=x$rJ]B8$7$F$b$i$($?$i$&$l$7$$$3$H$O$h$/$"$j$^$9!#(B
$B$?$H$($P(BRails$B$J$I$G%I%m%C%W%@%&%s%j%9%H$NMWAG$r5-=R$9$k$H(B
$B$-$K(B
ITEMS = {
"jp" => '$BF|K\(B',
"us" => '$B%"%a%j%+(B',
"other" => '$B$=$NB>(B'
}.freeze
$B$r0z?t$H$7$FEO$9$h$&$JMQES$G$9!#(B

$B$7$+$7$J$,$i!"(BHASH$B$O%@%$%J%_%C%/$KA}$($?$j8:$C$?$j!"?-$S$?(B
$B$j=L$s$@$j!"(B
$BJQ$o$C$?$j$7$^$9!#(BHash$B$NMWAG$,(BHash$B$@$C$?$j$7$^$9$7!"(B
$BFbMF$,$I$s$I$sJQ2=(B
$B$7$F$$$k$b$N$N=g=x$rJ];}$9$k$N$O<BAu$9$k$K$"$?$j%*!<%P!<%X%C%I$,(B
$B3]$+$j$9$.$k$N$G$O$J$$$G$7$g$&$+!#=g=x$,I,MW$G$"$l$PG[Ns$NCf$K(B
Hash$B$J$j(B
$BG[Ns$r$$$l$k$H$+!"%*!<%P%i%C%W%/%i%9$r:n$C$F<BAu$9$k:#$N$d$jJ}$G(B
$B$J$s$H$+$d$j$/$j$G$-$k$N$G$O$J$$$G$7$g$&$+!#(B

$B$b$7%*!<%P!<%X%C%I$,$?$$$7$?$3$HL5$1$l$P=g=x$rJ];}$7$F$b$i$($?$i(B
$B$&$l$7$$$G$9!#(B
.freeze$B$7$?>l9g$K8B$j=g=x$,J]>Z$5$l$k$H$$$&@)8BIU$-$G$b$"$j$,$?(B
$B$$$G$9$M!#(B

$BFb3$!w%Y%k%.!<(B
Urabe Shyouhei
2007-08-21 00:48:49 UTC
Permalink
$B$b$7%*!<%P!<%X%C%I$,$?$$$7$?$3$HL5$1$l$P=g=x$rJ];}$7$F$b$i$($?$i$&$l$7$$(B
$B$G$9!#(B
$B$?$H$($P%-!<$N%*%V%8%'%/%HF1;N$,(BComparable$B$H$$$&@)(B
$BLs$r$D$1$l$P!"(BB$BLZ%/%i%9$r:***@.$9$k$3$H$GK>$_$N$b$N$,(B
$BF@$i$l$k$G$7$g$&!#(B
O(1)$B$,(BO(log(n))$B$K$J$k%*!<%P!<%X%C%I$N$3$H$r!V$?$$$7(B
$B$?$3$HL5$$!W$HI=8=$9$k>l9g$O!"$G$9$,!#(B

# $B$G$b(BB$BLZ$r<BAu$7$?%/%i%9$K(BHash$B$H$$$&L>A0$rIU$1$k$N(B
# $B$***@dBP0c$&(B
Kazuhiro NISHIYAMA
2007-08-21 01:41:07 UTC
Permalink
$B@>;3OB9-$G$9!#(B

At Tue, 21 Aug 2007 08:14:22 +0900,
Post by Masahiro Utsumi
$B;d$b=g=x$rJ]B8$7$F$b$i$($?$i$&$l$7$$$3$H$O$h$/$"$j$^$9!#(B
ITEMS = {
"jp" => '$BF|K\(B',
"us" => '$B%"%a%j%+(B',
"other" => '$B$=$NB>(B'
}.freeze
$B$r0z?t$H$7$FEO$9$h$&$JMQES$G$9!#(B
$B$7$F$$$k$b$N$N=g=x$rJ];}$9$k$N$O<BAu$9$k$K$"$?$j%*!<%P!<%X%C%I$,(B
$B3]$+$j$9$.$k$N$G$O$J$$$G$7$g$&$+!#=g=x$,I,MW$G$"$l$PG[Ns$NCf$K(B Hash$B$J$j(B
$BG[Ns$r$$$l$k$H$+!"%*!<%P%i%C%W%/%i%9$r:n$C$F<BAu$9$k:#$N$d$jJ}$G(B
$B$J$s$H$+$d$j$/$j$G$-$k$N$G$O$J$$$G$7$g$&$+!#(B
Rails$B$J$i(B ActiveSupport::OrderedHash $B$r;H$&$N$O$I$&$G$7$g$&$+(B?
--
|ZnZ($B%<%C%H(B $B%(%L(B $B%<%C%H(B)
|$B@>;3OB9-(B(Kazuhiro NISHIYAMA)
内山紀明
2007-08-18 14:35:10 UTC
Permalink
$B$O$8$a$^$7$F!$Fb;3$H?=$7$^$9!%(B
Post by Hiroshi Kasamatsu
$BI=<($5$l$k$H$h$$$N$G$9$,!"(Bhash$B$NCf?H$O$I$N$h$&$J4p=`$G(B
Hash$B%/%i%9$r7Q>5$7$?%/%i%9$rDj5A$7$F$O$$$+$,$G$7$g$&$+!%(B
$BNc$($P!$0J2<$N$h$&$K(BOrderedHash$B%/%i%9$rDj5A$7$^$9!%(B

class OrderedHash < Hash
def initialize
@index = []
end

def []=(key, val)
@index.push(key)
super(key, val)
end

def each
@index.each do |key|
yield(key, self[key])
end
self
end
end

[]=$B$H(Beach$B%a%=%C%I$r%*!<%P!<%i%$%I$7$F$$$^$9!%(B
$B7k2L$H$7$F0J2<$N$h$&$K$J$j$^$9!%(B
Post by Hiroshi Kasamatsu
pair = OrderedHash.new
=> {}
Post by Hiroshi Kasamatsu
pair["apple"]="apple"
=> "apple"
Post by Hiroshi Kasamatsu
pair["and"]="and"
=> "and"
Post by Hiroshi Kasamatsu
pair["bee"]="bee"
=> "bee"
Post by Hiroshi Kasamatsu
pair["cat"]="cat"
=> "cat"
Post by Hiroshi Kasamatsu
pair["dog"]="dog"
=> "dog"
Post by Hiroshi Kasamatsu
pair.each do |key, val|
print key, "=>", val, "\n"
end
apple=>apple
and=>and
bee=>bee
cat=>cat
dog=>dog
=> {"cat"=>"cat", "and"=>"and", "bee"=>"bee", "apple"=>"apple", "dog"=>"dog"}

$B$4;29M$K$J$l$P9,$$$G$9!%(B
--
--- We Ain't Seen Nothin' Yet.
$B!!Fb;3(B $B5*L@(B
$B!!(Buchiyama.noriaki-***@public.gmane.org
$B!!(Bhttp://blog.fulltext-search.biz/
Shima Shizuo
2007-08-19 00:52:34 UTC
Permalink
$B$3$s$K$A$O!"Eh$G$9!#(B
Post by 内山紀明
Hash$B%/%i%9$r7Q>5$7$?%/%i%9$rDj5A$7$F$O$$$+$,$G$7$g$&$+!%(B
$BNc$($P!$0J2<$N$h$&$K(BOrderedHash$B%/%i%9$rDj5A$7$^$9!%(B
class OrderedHash < Hash
def initialize
@index = []
end
def []=(key, val)
@index.push(key)
super(key, val)
end
def each
@index.each do |key|
yield(key, self[key])
end
self
end
end
$BF1$8(Bkey$B$rJ#?t2s;XDj$5$l$k$H!"(Beach $B$GF1$8(Bkey,val$B$,J#?t2s=P$F$-$F(B
$B$7$^$$$=$&$G$9$M!#(B

def []=(key, val)
+ @index.delete(key)
@index.push(key)
super(key, val)
end

$B$H$9$k$N$,$$$$$+$J$!!&!&(B


----
Shima Shizuo r6-sfTtQB3dqF2s6+qkyraiY88NsWr+***@public.gmane.org
Yugui
2007-08-19 02:19:31 UTC
Permalink
Yugui$B$H8@$$$^$9!#(B

$BMQES$H<B:]$N%G!<%?%5%$%:$K$b$h$j$^$9$1$l$I$b!"(B
$B%G!<%?%5%$%:$,>.$5$$$+%i%s%@%`%"%/%;%9$,>/$J$$$N$G$"$l$P(Bhash map$B$NBe$o$j$K(B
assoc vector$B$b$"$j$($^$9$h$M!#(B

Array$B%/%i%9$K$O$=$N$?$a$N(Bassoc, rassoc$B%a%=%C%I$,$"$j$^$9!#(B
$BLr$KN)$D$+J,$+$j$^$;$s$,!"$4;29M$^$G$K!#(B

--
Yugui
yugui-utBekQ37Wi02g11tahj2xc8NsWr+***@public.gmane.org
http://idm.s9.xrea.com
菅谷 昌広
2007-08-20 13:36:49 UTC
Permalink
$B?{C+$G$9!#(B
$B=i$a$^$7$F!#(B
$B%G!<%??t$,B?$$>l9g$KF1$8$h$&$J;H$$J}$r$7$?$$$N$G$9$,!"(B
Post by Yugui
Array$B%/%i%9$K$O$=$N$?$a$N(Bassoc, rassoc$B%a%=%C%I$,$"$j$^$9!#(B
$BLr$KN)$D$+J,$+$j$^$;$s$,!"$4;29M$^$G$K!#(B
Array$B$N(Bassoc$B!"(Brassoc$B$N7W;;NL$O$I$&$J$C$F$$$k$s$G$7$g$&$+!)(B
$BF,$+$i=gHV$KHf3S$7$F$$$k$s$G$7$g$&$+$M!#(B
菅谷 昌広
2007-08-20 14:32:25 UTC
Permalink
$B?{C+$G$9!#(B
$B$9$_$^$;$s!#%=!<%9$r8+$?$i$=$&$J$C$F$^$7$?!#(B
Post by 菅谷 昌広
$BF,$+$i=gHV$KHf3S$7$F$$$k$s$G$7$g$&$+$M!#(B
山崎雄介
2007-08-19 23:58:49 UTC
Permalink
$B;3:j!J$f!K$G$9!#(B

PseudoHash$B$J$k$b$N$,$"$j$^$9!#(B
http://raa.ruby-lang.org/project/pseudohash/

require 'pseudohash'
pair = PseudoHash.new
pair["apple",true]="apple"
pair["and",true]="and"
pair["bee",true]="bee"
pair["cat",true]="cat"

pair.order.each do |key|
print key, "=>", pair[key], "\n"
end

$BG[I[$5$l$F$$$k(BPseudoHash$B$G$O!"=g=xIU$-$K$9$k$N$K!"(B
pair["apple",true]="apple"
$B$H$7$J$1$l$P$$$1$J$$$N$G$9$,!"=g=xIU$10J30$NL\E*$G(BPseudoHash$B$,I,MW$J>l9g(B
$B$O$J$$$H;W$C$?$N$G!"(B[]$B%a%=%C%I$r=q$-49$($F;H$C$F$$$^$9!#(B

require 'pseudohash'

class PseudoHash
def []=(k, *rest)
val, set = rest.reverse
# order.push k if set and not order.include? k
order.push k if not order.include? k
aset(k,val)
end
end

pair = PseudoHash.new
pair["apple"]="apple"
pair["and"]="and"
pair["bee"]="bee"
pair["cat"]="cat"

pair.order.each do |key|
print key, "=>", pair[key], "\n"
end
_______________________
Yusuke Yamasaki <y-yamasaki-+PXduL8wUknqq2nvvmkE/***@public.gmane.org>
Hiroshi Kasamatsu
2007-08-20 15:46:11 UTC
Permalink
$B;3:j$5$s!"%l%9$"$j$,$H$&$4$6$$$^$9!#(B
$B3^>>$G$9!#(B
Post by 山崎雄介
PseudoHash$B$J$k$b$N$,$"$j$^$9!#(B
http://raa.ruby-lang.org/project/pseudohash
Hash$B$K$b=g=x$,$"$C$F$$$$$H9M$($??M$b$$$?$s$G$9$M!#>/$7!"0B?4$7$^$7$?!#(B
$BAaB.;n$7$F$_$?$$$H;W$$$^$9!#(B
rubikitch-X+L+
2007-08-21 12:19:54 UTC
Permalink
$B$k$S$-$A$G$9!#(B

$BKM$b(BHash$B$r(BOrderedHash$B2=$9$k$N$K$OH?BP$G$9!#(B
$B$=$l$H$OJL$K(BOrderedHash$B$r:n$k$Y$-$G$7$g$&!#(B

--

$B0J2<$O5-K!$NOC!#(B

$B$?$@!"(B{ 1=>"one", 2=>"two" }$B$H$$$&%j%F%i%k!J8=:_$O(BHash$B$G$9$,!K$,I=$9(B
$B%*%V%8%'%/%H$K$O=g=x$,J]B8$5$l$F$l$P$$$$$J$H;W$C$?$3$H$O$"$j$^$9!#(B
$B$+$H$$$C$F(B {$B!A(B} $B$r(BOrderedHash$B%j%F%i%k$K$7$F$7$^$&$H(B
Hash$B$NJ8;zNsI=5-$bF1$8$K$J$k$N$G:.Mp$***@8$8$^$9!#(B

$B2>$K(B [ 1=>"one", 2=>"two" ] $B$r(BOrderedHash$B%j%F%i%k$K$7$F$_$k$H$I$&$J$s$G$7$g$&$M!#(B
Hash$B$N5!G=$r;}$A$J$,$iG[Ns$N5!G=!J=g=xJ]B8!K$r;}$C$F$$$k$N$GE,G$$J5$$,$7$^$9!#(B
Ruby 1.8$B$G$O(B [{1=>"one", 2=>"two"}] $B$H2r<a$5$l$k$1$I!"(B
$B$3$N5-K!$G(B Hash 1$B$D$+$i$J$kG[Ns$r:n$k$3$H$O5)$J5$$,$7$^$9!#(B

$B$G$b!"(BOrderedHash$B$C$F$=$s$J$KMxMQIQEY9b$$$N$+$J!)$?$@$"$k$HJXMx$J$@$1$+$J!)(B
$BMWAG?t$,>/$J$1$l$PIaDL$K(B alist $B$G==J,$J5$$,$7$^$9!#(B

$B$=$b$=$b(BRuby$B$N(BHash$B$K=g=x$r4|BT$9$k?M$,8=$l$k$N$O!"(B
Hash$B%j%F%i%k$,>/$7G[Ns$C$]$/8+$($k$+$i$@$HKM$O9M$($F$$$^$9!#(B
{1,2,3,4}$B!J(B {1=>2, 3=>4} $B$H2r<a$5$l$k!K$J$s$F$N$b$G$-$^$9$7!#(B

--
rubikitch
http://www.rubyist.net/~rubikitch/
SASADA Koichi
2007-08-21 16:00:53 UTC
Permalink
Post by rubikitch-X+L+
$B$=$b$=$b(BRuby$B$N(BHash$B$K=g=x$r4|BT$9$k?M$,8=$l$k$N$O!"(B
{1,2,3,4}$B!J(B {1=>2, 3=>4} $B$H2r<a$5$l$k!K$J$s$F$N$b$G$-$^$9$7!#(B
$B!!<B$O!$$3$C$=$j(B {1,2,3,4} $B$O(B 1.9 $B$+$i$O6X;_$5$l$k$h$&$JJ}?K$@$C$?$j(B
$B$7$^$9!J=hM}7O$+$i$O>C$5$l$F$$$^$9!K!%(B

$B!!$^$D$b$H$5$s$O$.$c$C$H$$$&?M$,5o$?$i$d$a$h$&!$$H8@$C$F$^$7$?$,!$:#(B
$B$O$.$c$C$H$$$&%A%c%s%9$J5$$,$7$^$9!%(B
--
// SASADA Koichi at atdot dot net
// $B$3$l$K4X$7$F$O!$$I$C$A$G$b$$$$$s$G$9$,!$$I$C$A$G$b$$$$$N$G(B
// $BL5$/$90UL#$O$J$$$s$8$c$J$$$+$H;W$C$F$$$^$9!%(B
ARAI Shunichi
2007-08-21 16:25:42 UTC
Permalink
Post by SASADA Koichi
$B$7$^$9!J=hM}7O$+$i$O>C$5$l$F$$$^$9!K!%(B
$B$O$.$c$C$H$$$&%A%c%s%9$J5$$,$7$^$9!%(B
$B$.$c$C!*(B

$B$9$G$K(B{1,2,3,4}$BJ}<0$rBt;3$D$+$C$F%5!<%S%93+;O$7$F$7$^$$$^$7$?!#(B
$***@EE*$KH=CG$G$-$kLdBj$J$N$G!"0\9T;Y1g%D!<%k$,EP>l$9$l$P(B
$B4JC1$K0\9T$G$-$k$h$&$J5$$b$7$^$9$1$I$b(B....

Ruby 1.9$B$X$N0\9T;Y1g%S%8%M%9$,$G$-$=$&!#(B

---
$B$"$i$$$7$e$s$$$A(B
Loading...