routine prepend

Documentation for routine prepend assembled from the following types:

class Any

From Any

(Any) method prepend

Defined as:

multi method prepend(--> Array)
multi method prepend(@values --> Array)

Called with no arguments on an empty variable, it initializes it as an empty Array; if called with arguments, it creates an array and then applies Array.prepend on it.

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

class Nil

From Nil

(Nil) method prepend

method prepend(*@)

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

role Buf

From Buf

(Buf) method prepend

method prepend( $elems )

Adds elements at the beginning of the buffer

$bú.prepend( 0 );
say $bú.raku; # OUTPUT: «Buf.new(0,1,1,2,3,5,8,13,21,34,55,89)»

class Array

From Array

(Array) routine prepend

Defined as

sub prepend(\array, |elems)
multi method prepend(Array:D: \values)
multi method prepend(Array:D: **@values is raw)

Adds the elements from LIST to the front of the array, modifying it in-place.

Example:

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

The difference from method unshift is that if you prepend a single array or list argument, prepend will flatten that array / list, whereas unshift prepends the list / array as just a single element.