[Tokyo.pm] Re: [Tokyo.pm] Re: わかりやすいソート (Re: [Tokyo.pm] Re: [Tokyo.pm] JUS感想)
scozens @ pwj.co.jp
scozens @ pwj.co.jp
1999年 10月 7日 (木) 01:30:30 CDT
> mapやgrepをvoidコンテキストで呼んではダメです。
まあ、Tom Christiansenによると...
> pushの返り値(要素数)をリストに集めてから捨てています。
そう分かりましただけど、-wやuse strictが不満を言いません。
(実は、直す方がいい。いつかp5pで示めます。注意を与える、または
返り値をリストに集めないこともできます。)
じゃ、今そういう気分です:
sub goodmap (
&@) {$b=shift
; map{defined
wantarray?&$b
:(&$b,())}@_}
(だが、この場合、$_を変化すると、アレイが変わらないだから、そんなに
goodではない。Bah.)
今まで、プロトタイプで&を書いて、BLOCKという意味があると知らなかった...
> hashのkeysは順序を保存しないし、@unsortedに同じ要素が複数あると
> 困るので、ソートキーを作るには不適切でしょう。
D'oh.
> for_sm_once: 48 wallclock secs (48.37 usr + 0.02 sys = 48.39 CPU)
> for_sm_twice: 49 wallclock secs (48.34 usr + 0.02 sys = 48.36 CPU)
> map_once: 51 wallclock secs (50.90 usr + 0.03 sys = 50.93 CPU)
> map_twice: 46 wallclock secs (46.12 usr + 0.07 sys = 46.19 CPU)
だから、二回繰り返す方がやっぱり速い。
Weird, huh?
Simon
--
perl -le 'print map{chr}(74,117,115,116,32,65,110,111,116
,104,101,114,32,80,101,114,108,32,72,97,99,107,101,114);'
Tokyo-pm メーリングリストの案内