BrowserREPL-button-tip-on BrowserREPL-button-tip-off

EditButtonTip 2024-05-19

role QuantHash

Object hashes with a limitation on the type of values

role QuantHash does Associative { }
Code

The QuantHash role provides the basic functionality shared by the Setty, Baggy and Mixy roles. These provide object hashes whose values are limited in some way.

QuantHashes are what set operators use internally.

Methods§

method hash§

method hash()
Code

Coerces the QuantHash object to a Hash (by stringifying the objects for the keys) with the values of the hash limited to the same limitation as QuantHash, and returns that.

method Hash§

method Hash()
Code

Coerces the QuantHash object to a Hash (by stringifying the objects for the keys) without any limitations on the values, and returns that.

method Map§

method Map()
Code

Available as of the 2021.02 release of the Rakudo compiler.

Coerces the QuantHash object to a Map (by stringifying the objects for the keys) without any limitations on the values, and returns that.

method of§

method of()
Code

Returns the type of value a value of this QuantHash may have. This is typically Bool for Setty, UInt for Baggy or Real for Mixy roles.

method keyof§

method keyof()
Code

Returns the type of value a key of this subclass of QuantHash may have. This is typically Mu, which is also the default for punned QuantHashes.

method Capture§

method Capture()
Code

Returns the object as a Capture by previously coercing it to a Hash.

method list§

multi method list(QuantHash:D:)
Code

Returns a list of Pair objects of all keys and values in the QuantHash.

method Setty§

method Setty(--> Setty:D)
Code

Coerce the QuantHash object to the equivalent object that uses the Setty role. Note that for Mixy type coercion items with negative values will be skipped.

my %b is Bag = one => 1, two => 2;
say %b.Setty; # OUTPUT: «Set(one two)␤»
my %m is Mix = one => 1, minus => -1;
say %m.Setty; # OUTPUT: «Set(one)␤»
Code

method Baggy§

method Baggy(--> Baggy:D)
Code

Coerce the QuantHash object to the equivalent object that uses the Baggy role. Note that for Mixy type coercion items with negative values will be skipped.

my %s is Set = <one two>;
say %s.Baggy; # OUTPUT: «Bag(one two)␤»
my %m is Mix = one => 1, minus => -1;
say %m.Baggy; # OUTPUT: «Bag(one)␤»
Code

method Mixy§

method Mixy(--> Mixy:D)
Code

Coerce the QuantHash object to the equivalent object that uses the Mixy role.

my %s is Set = <one two>;
say %s.Mixy; # OUTPUT: «Mix(one two)␤»
my %b is Bag = one => 1, two => 2;
say %b.Mixy; # OUTPUT: «Mix(one two(2))␤»
Code

Class relation diagram§

Rakudo Type Relation for QuantHash QuantHash QuantHash Associative Associative QuantHash->Associative does