アプリ版:「スタンプのみでお礼する」機能のリリースについて

例えば、与えられた配列が (1, 3, 5, 7, 9, 2, 4, 6, 8, 10) だった場合に、
入力配列が (1, 2, 3, 4, 5) だったら、(1, 3, 5, 2, 4) のように並び替えた
いと考えています。

下記のような方法を考えましたが、いずれもできそうにありません。

grep { @ref } @input
map { grep { $_ } @ref } @input

forループ等を使えば容易にできるのでしょうが、なるべく自前のコードは書き
たくなく、map, grep, sort等を組み合わせてできればよりベターだと考えてい
ます。

なんとか、スマートな方法でこれを実現することはできないでしょうか。

A 回答 (1件)

むりやり one-liner:


@ref[sort {$a<=>$b} map {{map {$ref[$_] => $_} 0 .. $#ref}->{$_}} @input]
    • good
    • 0
この回答へのお礼

ありがとうございました。
結局下記のような方法で実現しました。

map { my $input = $_; grep { $_ eq $input } @ref } @input

お礼日時:2014/10/21 17:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!