Reason
  • Docs
  • Try
  • API
  • Community
  • Blog
  • Languages iconEnglish
    • 日本語
    • Deutsch
    • Español
    • Français
    • 한국어
    • Português (Brasil)
    • Русский
    • Українська
    • 中文
    • 繁體中文
    • Help Translate
  • GitHub
Previous  Up  Next

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.