Quick StartTryGuideAPICommunityBlogGitHub

Standard Library

Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!

If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.

Module Stack

module Stack: sig .. end
Last-in first-out stacks.

This module implements stacks (LIFOs), with in-place modification.


type t('a);
The type of stacks containing elements of type 'a.
exception Empty;
Raised when Stack.pop or Stack.top is applied to an empty stack.
let create: unit => t('a);
Return a new stack, initially empty.
let push: ('a, t('a)) => unit;
push x s adds the element x at the top of stack s.
let pop: t('a) => 'a;
pop s removes and returns the topmost element in stack s, or raises Empty if the stack is empty.
let top: t('a) => 'a;
top s returns the topmost element in stack s, or raises Empty if the stack is empty.
let clear: t('a) => unit;
Discard all elements from a stack.
let copy: t('a) => t('a);
Return a copy of the given stack.
let is_empty: t('a) => bool;
Return true if the given stack is empty, false otherwise.
let length: t('a) => int;
Return the number of elements in a stack.
let iter: ('a => unit, t('a)) => 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.