routine skip
1 | class Supply |
1.1 | (Supply) method skip |
2 | class Any |
2.1 | (Any) method skip |
3 | class Seq |
3.1 | (Seq) method skip |
4 | module Test |
4.1 | (Test) sub skip |
Documentation for routine skip
assembled from the following types:
class Supply
From Supply
(Supply) method skip
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: «45678910»
class Any
From Any
(Any) method skip
Defined as:
multi method skip()multi method skip(Whatever)multi method skip(Callable )multi method skip(Int() )
Creates a Seq from 1-item list's iterator and uses Seq.skip
on it, please check that document for real use cases; calling skip
without argument is equivalent to skip(1)
.
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.
class Seq
From Seq
(Seq) method skip
Defined as:
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)»
module Test
From Test
(Test) sub skip
Defined as:
multi sub skip()multi sub skip(, = 1)
Skip $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.