In Supply§
See primary documentation in context for 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.
In Any§
See primary documentation in context for routine tail
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)»
As of release 2022.07 of the Rakudo compiler, there is also a "sub" version of tail
.
multi tail(\specifier, +values)
It must have the tail specifier as the first argument. The rest of the arguments are turned into a Seq
and then have the tail
method called on it.
In List§
See primary documentation in context for method tail
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)»