Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Queue(3)			 OCaml library			      Queue(3)

       Queue - First-in	first-out queues.

       Module	Queue

       Module Queue
	: sig end

       First-in	first-out queues.

       This module implements queues (FIFOs), with in-place modification.

       Warning This module is not thread-safe: each Queue.t value must be pro-
       tected from concurrent access (e.g. with	a Mutex.t ).  Failure to do so
       can lead	to a crash.

       type 'a t

       The type	of queues containing elements of type 'a .

       exception Empty

       Raised when Queue.take or Queue.peek is applied to an empty queue.

       val create : unit -> 'a t

       Return a	new queue, initially empty.

       val add : 'a -> 'a t -> unit

       add x q adds the	element	x at the end of	the queue q .

       val push	: 'a ->	'a t ->	unit

       push is a synonym for add .

       val take	: 'a t -> 'a

       take  q	removes	 and  returns the first	element	in queue q , or	raises
       Empty if	the queue is empty.

       val pop : 'a t -> 'a

       pop is a	synonym	for take .

       val peek	: 'a t -> 'a

       peek q returns the first	element	in queue q , without removing it  from
       the queue, or raises Empty if the queue is empty.

       val top : 'a t -> 'a

       top is a	synonym	for peek .

       val clear : 'a t	-> unit

       Discard all elements from a queue.

       val copy	: 'a t -> 'a t

       Return a	copy of	the given queue.

       val is_empty : 'a t -> bool

       Return true if the given	queue is empty,	false otherwise.

       val length : 'a t -> int

       Return the number of elements in	a queue.

       val iter	: ('a -> unit) -> 'a t -> unit

       iter  f	q  applies f in	turn to	all elements of	q , from the least re-
       cently entered to the most recently entered.  The queue itself  is  un-

       val fold	: ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b

       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.

       val transfer : 'a t -> 'a t -> unit

       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.

OCamldoc			  2017-04-30			      Queue(3)

NAME | Module | Documentation

Want to link to this manual page? Use this URL:

home | help