14 lines
503 B
Raku
14 lines
503 B
Raku
role FIFO {
|
|
method enqueue ( *@values ) { # Add values to queue, returns the number of values added.
|
|
self.push: @values;
|
|
return @values.elems;
|
|
}
|
|
method dequeue ( ) { # Remove and return the first value from the queue.
|
|
# Return Nil if queue is empty.
|
|
return self.elems ?? self.shift !! Nil;
|
|
}
|
|
method is-empty ( ) { # Check to see if queue is empty. Returns Boolean value.
|
|
return self.elems == 0;
|
|
}
|
|
}
|