In List§
See primary documentation in context for routine antipairs
method antipairs(List: --> Seq)
Returns a Seq
of pairs, with the values as keys and the indexes as values, i.e. the direct opposite to pairs.
say <a b c>.antipairs; # OUTPUT: «(a => 0 b => 1 c => 2)»
In Pair§
See primary documentation in context for method antipairs
multi method antipairs(Pair:)
Returns a List
containing the antipair of the invocant.
my = (d => 'Raku').antipairs;say .^name; # OUTPUT: «List»say .first; # OUTPUT: «Raku => d»say .first.^name; # OUTPUT: «Pair»
In Capture§
See primary documentation in context for method antipairs
multi method antipairs(Capture: --> Seq)
Returns all arguments, the positional followed by the named, as a Seq
of Pair
s where the keys and values have been swapped, i.e. the value becomes the key and the key becomes the value. This behavior is the opposite of the pairs method.
my = \(2, 3, apples => (red => 2));say .antipairs; # OUTPUT: «(2 => 0 3 => 1 (red => 2) => apples)»
In role Setty§
See primary documentation in context for method antipairs
multi method antipairs(Setty: --> Seq)
Returns all elements in the set and True
as a Seq
of Pair
s, where the element itself is the value, i.e. the opposite of method pairs
.
my = Set.new(1, 2, 3, 1);say .antipairs.sort; # OUTPUT: «(True => 1 True => 2 True => 3)»
In role Baggy§
See primary documentation in context for method antipairs
method antipairs(Baggy: --> Seq)
Returns all elements and their respective weights as a Seq
of Pair
s, where the element itself is the value and the weight of that element is the key, i.e. the opposite of method pairs.
my = bag <bacon eggs bacon>;my = .antipairs;say .sort; # OUTPUT: «(1 => eggs 2 => bacon)»
In Map§
See primary documentation in context for method antipairs
method antipairs(Map: --> Seq)
Returns all keys and their respective values as a Seq
of Pair
s where the keys and values have been exchanged, i.e. the opposite of method pairs. Unlike the invert
method, there is no attempt to expand list values into multiple pairs.
my = Map.new('a' => (2, 3), 'b' => 17);say .antipairs; # OUTPUT: «((2 3) => a 17 => b)»
In Any§
See primary documentation in context for method antipairs
multi method antipairs(Any:)multi method antipairs(Any:)
Returns an empty List
if the invocant is a type object
Range.antipairs.say; # OUTPUT: «()»
If it's a value object, it returns the inverted list of pairs after converting it to a list of pairs; the values will become keys and the other way round.
%(s => 1, t=> 2, u => 3).antipairs.say ;# OUTPUT: «(2 => t 1 => s 3 => u)»