A simple polymorphic functional queue. Use this data structure for strictly first-in,
first-out access to a sequence of values. For a similar data structure with enqueue
and dequeue accessors on both ends of a sequence, see Fdeque.
Amortized running times assumes that enqueue/dequeue are used sequentially, threading the changing Fqueue through the calls.
Checks whether the provided element is there, using polymorphic compare if equal
is not provided
fold t ~init ~f returns f (... f (f (f init e1) e2) e3 ...) en, where e1..en
are the elements of t
Returns true if and only if there exists an element for which the provided
function evaluates to true. This is a short-circuiting operation.
Returns true if and only if the provided function evaluates to true for all
elements. This is a short-circuiting operation.
Returns the number of elements for which the provided function evaluates to true.
Returns as an option the first element for which f evaluates to true.
Returns the first evaluation of f that returns Some, and returns None if there
is no such element.
Returns a minimum (resp maximum) element from the collection using the provided
cmp function, or None if the collection is empty. In case of a tie, the first
element encountered while traversing the collection is returned. The implementation
uses fold so it has the same complexity as fold.
The empty queue
returns the bottom (most-recently enqueued element). Raises Empty if no element is
found. Complexity: O(1)
bot_exn is deprecated, use Fdeque.t instead.
like bot_exn, but returns result optionally, without exception. Complexity: O(1)
bot is deprecated, use Fdeque.t instead.
Like bot_exn, except returns top (least-recently enqueued element. Complexity:
O(1)
like top_exn, but returns result optionally, without exception, Complexity: O(1)
to_list t returns a list of the elements in t in order from least-recently-added
(at the head) to most-recently added (at the tail). Complexity: O(n)
complexity: O(1)
complexity: O(1)
complexity: O(1)