新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: [Q] perl での 二つ以上のキーを用いたソート
Date: 1998/08/06 02:27:05
Reference: mesh.program/00526

8月6日に、素人でGO!さんは書きました。

>8月6日に、いしどうさんは書きました。
>
>>青本はお持ちですか? (^o^)
>
> いえ、持ってないです(^^;
>
おや、それは残念。いしどうさんが「青本はお持ちですか」と聞いたのは
青本(Programming Perlの新版)のsort()の項には、その物ズバリの
例が載っているからのです(よね?)

> まずおいしいものを食べたいので、おいしさ順にソートします。
> A〜Eの五段階だとします。
> それでも同じものがある場合は価格が安い方がいいですよね。
> というわけでさらに価格の安い順でソートします。
> それでも同じならかわいい子がいる店の方がいいだろう(笑)ということで
> さらにソートします。
>
この例で言えば、まず、

sub 良い店 {
  $おいしさ{$a} <=> $おいしさ{$b}
    or
  $安さ{$a} <=> $安さ{$b}
    or
  $かわいさ{$a} <=> $かわいさ{$b};
}

と言う関数を作っておくと、おいしさの違いで決まりならそれが関数の値として使われ、
同じおいしさなら安さの違いが、同じ安さならかわいさの違いが、関数の値として
使われるので、

@sorted_shop = sort 良い店 @shop;

とすれば、いきなりソート出来るわけです。

>二ヶ月ほど投稿がないので、誰も見ていないかもしれませんが
>
ぎくっ (^^;;