Documentation for method tail
assembled from the following pages:
Class: Any §
From Any
(Any) method tail §
Defined as:
multi method tail() is rawmulti method tail()
Returns the last or the list of the $n
last elements of an object. $n
can be a Callable
, usually a WhateverCode
, which will be used to get all but the first n
elements of the object.
say (^12).reverse.tail ; # OUTPUT: «0» say (^12).reverse.tail(3); # OUTPUT: «(2 1 0)» say (^12).reverse.tail(*-7); # OUTPUT: «(4 3 2 1 0)»
Class: Supply §
From Supply
(Supply) method tail §
multi method tail(Supply:)multi method tail(Supply: Callable )multi method tail(Supply: \limit)
Creates a "tail" supply with the same semantics as List.tail.
my = Supply.from-list(4, 10, 3, 2);my = .tail(2);.tap(); # OUTPUT: «32»
You can call .tail
with Whatever
or Inf
; which will return a new supply equivalent to the initial one. Calling it with a WhateverCode
will be equivalent to skipping until that number.
my = Supply.from-list(4, 10, 3, 2);my = .tail( * - 2 );.tap(); # OUTPUT: «32»
This feature is only available from the 2020.07 release of Raku.
Class: List §
From List
(List) method tail §
Defined as:
multi method tail(List:)multi method tail(List: --> Seq)
Returns a Seq containing the last $n
items of the list. Returns an empty Seq
if $n
<= 0. Defaults to the last element if no argument is specified. Throws an exception if the list is lazy.
Examples:
say <a b c d e>.tail(*-3);# OUTPUT: «(d e)» say <a b c d e>.tail(2); # OUTPUT: «(d e)» say <a b c d e>.tail; # OUTPUT: «e»
In the first case, $n
is taking the shape of a WhateverCode
to indicate the number of elements from the beginning that will be excluded. $n
can be either a Callable, in which case it will be called with the value 0
, or anything else that can be converted to a number, in which case it will use that as the number of elements in the output Seq
.
say <a b c d e>.tail( ); # OUTPUT: «(c d e)»