Rand Stats



Actions Status


ValuePair - Provide an immutable Pair value type


use ValuePair;

my $a = ValuePair.new("a",42);
my $b = ValuePair.new( key => "a", value => 42);
my $c = ValuePair.new( (a => 42) );

set($a, $b, $c);  # elems == 1


The functionality provided by this module, will most likely be provided in language level 6.e and higher. If an implementation of ValuePair is already available, loading this module becomes a no-op.

Raku provides a semi-immutable Pair datatype, where the value of a Pair object can be a container, and thus mutable. Therefore, a standard Pair is not a value type. The ValuePair class provided by this module, is a subclass of Pair, and does not allow a mutable value. And thus it can be a value type.

The .new method either accepts two positional arguments (key and value), or key and value named arguments, or an existing Pair.


Elizabeth Mattijsen liz@raku.rocks

Source can be located at: https://github.com/lizmat/ValuePair . Comments and Pull Requests are welcome.

If you like this module, or what I’m doing more generally, committing to a small sponsorship would mean a great deal to me!


Copyright 2022 Elizabeth Mattijsen

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.