The unshift routine

Combined from primary sources listed below.

In class IterationBuffer ( Type/IterationBuffer )§

See primary docmentation in context for method unshift.

method unshift§

method unshift(IterationBuffer:D: Mu \value)

Adds the given value at the beginning of the IterationBuffer and returns the given value. Available as of the 2021.12 release of the Rakudo compiler.

In class Any ( Type/Any )§

See primary docmentation in context for method unshift.

method unshift§

multi method unshift(Any:U: --> Array)
multi method unshift(Any:U: @values --> Array)

Initializes Any variable as empty Array and calls Array.unshift on it.

my $a;
say $a.unshift# OUTPUT: «[]␤»
say $a;         # OUTPUT: «[]␤»
my $b;
say $b.unshift([1,2,3]); # OUTPUT: «[[1 2 3]]␤»

In role Buf ( Type/Buf )§

See primary docmentation in context for method unshift.

method unshift§

method unshift()

Inserts elements at the beginning of the buffer.

my $bú = Buf.new( 1, 1, 2, 3, 5 );
$bú.unshift( 0 );
say $bú.raku# OUTPUT: «Buf.new(0,1,1,2,3,5)␤»

In class Array ( Type/Array )§

See primary docmentation in context for routine unshift.

routine unshift§

multi        unshift(Array:D, **@values --> Array:D)
multi method unshift(Array:D: **@values --> Array:D)

Adds the @values to the start of the array, and returns the modified array. Fails if @values is a lazy list.

Example:

my @foo = <a b c>;
@foo.unshift: 1, 3 ... 11;
say @foo;                   # OUTPUT: «[(1 3 5 7 9 11) a b c]␤»

The notes in the documentation for method push apply, regarding how many elements are added to the array.

The routine prepend is the equivalent for adding multiple elements from one list or array.

In class Nil ( Type/Nil )§

See primary docmentation in context for method unshift.

method unshift§

method unshift(*@)

Warns the user that they tried to unshift onto a Nil or derived type object.