Documentation for routine
skip assembled from the following types:
multi sub skip()multi sub skip(, = 1)
$count tests, giving a
$reason as to why. By default only one test will be skipped. Use such functionality when a test (or tests) would die if run.
sub num-forward-slashes() ;if ~~ 'linux'else
Note that if you mark a test as skipped, you must also prevent that test from running.
method skip(Supply: Int(Cool) = 1 --> Supply)
Returns a new
Supply which will emit all values from the given
Supply except for the first
$number values, which will be thrown away.
my = Supplier.new;my = .Supply;= .skip(3);.tap();.emit() for 1..10; # OUTPUT: «4␤5␤6␤7␤8␤9␤10␤»
multi method skip(Int() = 1 --> Seq)
Returns a Seq containing whatever is left of the invocant after throwing away
$n of the next available values. Negative values of
$n count as 0. Also can take a WhateverCode to indicate how many values to skip from the end. Will block on lazy Seqs until the requested number of values have been discarded.
say (1..5).map().skip; # OUTPUT: «(2,3,4,5)␤»say (1..5).map().skip(3); # OUTPUT: «(4,5)␤»say (1..5).map().skip(5); # OUTPUT: «()␤»say (1..5).map().skip(-1); # OUTPUT: «(1,2,3,4,5)␤»say (1..5).map().skip(*-3); # OUTPUT: «(3,4,5)␤»
multi method skip()multi method skip(Whatever)multi method skip(Callable )multi method skip(Int() )
Calling it with
Whatever will return an empty iterator:
say <1 2 3>.skip(*); # OUTPUT: «()␤»
The multi that uses a Callable is intended mainly to be used this way:
say <1 2 3>.skip(*-1); # OUTPUT: «(3)␤»
Instead of throwing away the first
$n elements, it throws away everything but the elements indicated by the WhateverCode, in this case all but the last one.