[Tokyo.pm] JUS感想

harada goichi goichi @ mb.kcom.ne.jp
1999年 9月 28日 (火) 09:55:14 CDT


こんばんは、吾一です。


Kazumasa Utashiro wrote:

> ======================================================================
> sub normal {
>     my $listp = shift;
>     my @length = map {length} @{$listp};
>     @$listp[sort {$length[$a] <=> $length[$b]} 0 .. $#length];
> }

見てしばらく、何をやっているのか良くわからなかったのですが、
「スライスの中にそのままソートルーチンを入れている」
と言う事に気がついて愕然としました。

それと同時に

「凄い!!PERLってやっぱり色々書けて面白い!!」

と言う気持ちと

「凄い!!PERLってやっぱり意味不明で無茶苦茶だ!!」

と言う気持ちが同時に沸き上がりしばし混乱しましたが、
最終的に

「ま、便利だし面白いから、いっかー。」

と言う結論に落ち着きました。


> では、プログラミングの効率が高くなるかというと、そうでもないと思います。
> パズルとしては面白いんですが。
> 
> --utashiro

条件Aでソートして、次に条件Bでソートして、次に条件Cで・・・・・
と言う形の場合は効率は良さそうです。

しかし、時と場合によっては、一番良いとは言えないと言う事ですね。


maeda @ src.ricoh.co.jp wrote:

>map {$_->[0]}
>sort {my $x=($a->[$i]<=>$b->[$i]) and return $x for$i(1..$#$a); -1}
>map {[$_, split(/:/)]}
>@data;

講習会でおっしゃっていた

EXPR for @list

の形ですね。しばらく考えて意味がわかったような気がしますが、

for$i(1..$#$a); -1} の 

「-1」が良くわからないのでもうちょっと見てみます。


と言う事で、皆さん、御教授ありがとうございました。


PS
Pyuta.pmを使って、ソートルーチンを書こうと思ったら「並ベる」
がまだ実装されていなかったです・・・・・。


-- 

---------------------------------------
Goichi Harada
E-mail  goichi @ mb.kcom.ne.jp



Tokyo-pm メーリングリストの案内