See Original text in context
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.
See Original text in context
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)»
See Original text in context
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)»