my $coll=bag <1 2 2 3 2 4 4 2 2>;
say $coll; # => Bag(1, 2(5), 3, 4(2))
最大の値を持つアイテム(キー)を取得する方法、つまり、2(5)
このBagコレクションから
(オプション)結果が次のようになるように、連続する要素のみをカウントし、連続しないすべての要素を無視するようにBagに指示する方法はありますBag(2(4), 4(2))
か?
my $coll=bag <1 2 2 3 2 4 4 2 2>;
say $coll; # => Bag(1, 2(5), 3, 4(2))
最大の値を持つアイテム(キー)を取得する方法、つまり、2(5)
このBagコレクションから
(オプション)結果が次のようになるように、連続する要素のみをカウントし、連続しないすべての要素を無視するようにBagに指示する方法はありますBag(2(4), 4(2))
か?
回答:
最初の質問に答えるために、その方法があります。
say $coll.maxpairs; # 2 => 5
2番目の質問に答えるには、いいえ、できません。に到達する前に値を前処理するロジックのみを考案できますBag
。
<1 2 2 3 2 4 4 2 2>.map( *somelogic* ).Bag
* somelogic *の部分は、読者への演習として残しておきます。
Bag
私はmaxpairs
メソッドの使用に集中していたので、メソッドに出くわしていません。それは、連想のようなリストに適用される一般的な方法であることがわかります。知らなかった。知ってよかった。
<1 2 2 3 2 4 4 2 2> .rotor(3=>-2, :partial) .map: { .[1] if .[1] === .[0] | .[2] }