Module Stdlib.Stack
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 stacks containing elements of type 'a.
valcreate : ``unit->'at
Return a new stack, initially empty.
valpush :'a->'at->unit
push x s adds the element x at the top of stack s.
valpop :'at->'a
pop s removes and returns the topmost element in stack s, or raises
Empty if the stack is empty.
valpop_opt :'at->'aoption
pop_opt s removes and returns the topmost element in stack s, or
returns None if the stack is empty.
- since 4.08
valtop :'at->'a
top s returns the topmost element in stack s, or raises
Empty if the stack is empty.
valtop_opt :'at->'aoption
top_opt s returns the topmost element in stack s, or None if the
stack is empty.
- since 4.08
valclear :'at->unit
Discard all elements from a stack.
valis_empty :'at->bool
Return true if the given stack is empty, false otherwise.
vallength :'at->int
Return the number of elements in a stack. Time complexity O(1)
valiter : ``('a->unit)``->'at->unit
iter f s applies f in turn to all elements of s, from the element
at the top of the stack to the element at the bottom of the stack. The
stack itself is unchanged.
valfold : ``('b->'a->'b)``->'b->'at->'b
fold f accu s is (f (... (f (f accu x1) x2) ...) xn) where x1 is
the top of the stack, x2 the second element, and xn the bottom
element. The stack is unchanged.
- since 4.03
Stacks and Sequences
Iterate on the stack, top to bottom. It is safe to modify the stack during iteration.
- since 4.07
Add the elements from the sequence on the top of the stack.
- since 4.07
