package batteries
Install
Dune Dependency
Authors
Maintainers
Sources
md5=ea26b5c72e6731e59d856626049cca4d
sha512=55975b62c26f6db77433a3ac31f97af609fc6789bb62ac38b267249c78fd44ff37fe81901f1cf560857b9493a6046dd37b0d1c0234c66bd59e52843aac3ce6cb
doc/batteries.unthreaded/BatQueue/index.html
Module BatQueue
Source
First-in first-out queues.
This module implements queues (FIFOs), with in-place modification.
Raised when Queue.take
or Queue.peek
is applied to an empty queue.
take q
removes and returns the first element in queue q
, or raises Empty
if the queue is empty.
take_opt q
removes and returns the first element in queue q
, or returns None
if the queue is empty.
peek q
returns the first element in queue q
, without removing it from the queue, or raises Empty
if the queue is empty.
peek_opt q
returns the first element in queue q
, without removing it from the queue, or returns None
if the queue is empty.
drop q
removes the first element in queue q
, or raises Empty
if the queue is empty.
iter f q
applies f
in turn to all elements of q
, from the least recently entered to the most recently entered. The queue itself is unchanged.
map f q
applies function f
to each element of the queue and returns a new queue q'
with the results returned by f
. Order is preserved and q
is not consumed. So that if take q
returns x
take q'
will return f x
.
filter p q
returns a new queue that contain the elements of q
that satisfy the predicate p
, in the same order.
filter_map f q
applies f
to the elements a0,a1..an
of q
in order, and returns the queue of the elements bi
such that f ai = Some bi
, in the corresponding order.
filter_inplace p q
removes all the elements of the queue q
that don't satisfy the predicate p
. The order of the elements in the queue is preserved.
fold f accu q
is equivalent to List.fold_left f accu l
, where l
is the list of q
's elements. The queue remains unchanged.
transfer q1 q2
adds all of q1
's elements at the end of the queue q2
, then clears q1
. It is equivalent to the sequence iter (fun x -> add x q2) q1; clear q1
, but runs in constant time.
enum q
returns a destructive enumeration of the elements of queue q
, from the least recently entered to the most recently entered. Reading the enumeration will progressively empty q
.
of_enum e
returns a new queue containing all the elements of e
. This is equivalent to calling push
with the first element of the enumeration, then with the second, etc.
Iterators
Iterate on the queue, in front-to-back order. The behavior is not defined if the queue is modified during the iteration.
Add the elements from the generator to the end of the queue
Boilerplate code
Printing
val print :
?first:string ->
?last:string ->
?sep:string ->
('a BatInnerIO.output -> 'b -> unit) ->
'a BatInnerIO.output ->
'b t ->
unit