routine prepend

Documentation for routine prepend assembled from the following types:

role Buf

From Buf

(Buf) method prepend

method prepend$elems )

Adds elements at the beginning of the buffer

$.prepend0 );
say $.raku# OUTPUT: «,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.


my @foo = <a b c>;
@foo.prepend: 13 ... 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.

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.