Module Stdlib.Queue
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt:DkSDKProject_DeclareAvailable(ocaml CONSTRAINT "= 4.14.0" FINDLIBS str unix runtime_events threads dynlink) DkSDKProject_MakeAvailable(ocaml)Add the
Findlib::ocamllibrary to any desired targets insrc/*/CMakeLists.txt:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::ocaml)Click your IDE's
Buildbutton
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install ocaml.4.14.0Edit your
dune-projectand add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (ocaml (>= 4.14.0))))Then run:
dune build *.opam # if this fails, run: dune buildEdit your
<package>.opamfile and add:depends: [ # ... existing dependencies ... "ocaml" {>= "4.14.0"} ]Then run:
opam install . --deps-only
FINALLY, add the library to any desired (library)and/or (executable) targets in your **/dune files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
))type``!'a t
The type of queues containing elements of type 'a.
exceptionEmpty
Raised when Queue.take or Queue.peek is
applied to an empty queue.
valcreate : ``unit->'at
Return a new queue, initially empty.
valadd :'a->'at->unit
add x q adds the element x at the end of the queue q.
valpush :'a->'at->unit
push is a synonym for add.
valtake :'at->'a
take q removes and returns the first element in queue q, or raises
Empty if the queue is empty.
valtake_opt :'at->'aoption
take_opt q removes and returns the first element in queue q, or
returns None if the queue is empty.
- since 4.08
valpop :'at->'a
pop is a synonym for take.
valpeek :'at->'a
peek q returns the first element in queue q, without removing it
from the queue, or raises Empty if the queue is
empty.
valpeek_opt :'at->'aoption
peek_opt q returns the first element in queue q, without removing it
from the queue, or returns None if the queue is empty.
- since 4.08
valtop :'at->'a
top is a synonym for peek.
valclear :'at->unit
Discard all elements from a queue.
valis_empty :'at->bool
Return true if the given queue is empty, false otherwise.
vallength :'at->int
Return the number of elements in a queue.
valiter : ``('a->unit)``->'at->unit
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.
valfold : ``('b->'a->'b)``->'b->'at->'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.
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.
Iterators
Iterate on the queue, in front-to-back order. The behavior is not specified if the queue is modified during the iteration.
- since 4.07
Add the elements from a sequence to the end of the queue.
- since 4.07
