role QuantHash

Object hashes with a limitation on the type of values
role QuantHash does Associative { }

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()

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()

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()

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()

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()

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()

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

method list

multi method list(QuantHash:D:)

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

method Setty

method Setty(--> Setty:D)

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)␤»

method Baggy

method Baggy(--> Baggy:D)

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)␤»

method Mixy

method Mixy(--> Mixy:D)

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))␤»

See Also

role Associative

Object that supports looking up values by key

role Baggy

Collection of distinct weighted objects

role Blob

Immutable buffer for binary data ('Binary Large OBject')

role Buf

Mutable buffer for binary data

role Iterable

Interface for container objects that can be iterated over

role Iterator

Generic API for producing a sequence of values

role Mixy

Collection of distinct objects with Real weights

role Positional

Object that supports looking up values by index

role PositionalBindFailover

Failover for binding to a Positional

role Sequence

Common methods of sequences

role Setty

Collection of distinct objects

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.