[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 メーリングリストの案内