my $coll=bag <1 2 2 3 2 4 4 2 2>;
say $coll; # => Bag(1, 2(5), 3, 4(2))
Wie bekomme ich den Artikel (Schlüssel) mit dem größten Wert, dh den 2(5)
aus dieser Taschenkollektion?
(Optional) Gibt es eine Möglichkeit, die Tasche anzuweisen, nur die Elemente zu zählen, die aufeinander folgen, und alle Elemente, die nicht aufeinander folgen, zu ignorieren, damit das Ergebnis erzielt wird Bag(2(4), 4(2))
?
<1 2 2 3 2 4 4 2 2> .rotor(3=>-2, :partial) .map: { .[1] if .[1] === .[0] | .[2] }
Antworten:
Um Ihre erste Frage zu beantworten, gibt es dafür eine Methode:
Um Ihre zweite Frage zu beantworten: Nein, können Sie nicht. Sie können nur eine Logik entwickeln, die die Werte vorverarbeitet, bevor Sie zum gelangen
Bag
.Den * somelogischen * Teil als Übung dem Leser überlassen.
quelle
Bag
ich mich auf die Verwendung von konzentriert habe, bin ich nicht auf diemaxpairs
Methode gestoßen. Es stellt sich heraus, dass es sich um eine allgemeine Methode handelt, die für jede assoziative Liste gilt. Wusste es nicht. Gut zu wissen.