Получите предмет с наибольшей ценностью в коллекции сумок в Раку - PullRequest
7 голосов
/ 14 апреля 2020
my $coll=bag <1 2 2 3 2 4 4 2 2>;
say $coll; # => Bag(1, 2(5), 3, 4(2))

Как получить предмет (ключ) с наибольшим значением, то есть 2(5) из этой коллекции Сумок?

(Необязательно). Есть ли способ указать Сумке считать только те элементы, которые являются последовательными и игнорируют все, которые не являются последовательными, так что результат будет Bag(2(4), 4(2))?

1 Ответ

9 голосов
/ 14 апреля 2020

Чтобы ответить на ваш первый вопрос, есть способ для этого:

say $coll.maxpairs; # 2 => 5

Чтобы ответить на ваш второй вопрос: нет, вы не можете. Вы можете разработать только некоторые логи c, которые будут предварительно обрабатывать значения перед тем, как перейти к Bag.

 <1 2 2 3 2 4 4 2 2>.map( *somelogic* ).Bag

Оставляя часть * somelogi c* в качестве упражнения для читателя.

...