module Stack:LIFO スタックsig..end
このモジュールでは破壊的変更のできるスタックを実装します。
type 'a t
'a 型の要素を格納するスタックの型です。exception Empty
val create : unit -> 'a tval push : 'a -> 'a t -> unitpush x s はスタック s の先頭に要素 x を追加します。val pop : 'a t -> 'apop s はスタック s の先頭の要素を取り除き、その要素を返します。
スタックが空のときは Empty 例外が発生します。val top : 'a t -> 'atop s はスタック s の先頭の要素を返します。
スタックが空のときは Empty 例外が発生します。val clear : 'a t -> unitval copy : 'a t -> 'a tval is_empty : 'a t -> booltrue を返し、そうでなければ false を返します。val length : 'a t -> intval iter : ('a -> unit) -> 'a t -> unititer f s はスタック s の要素に、先頭の要素からスタックの底の要素に順に f を適用します。
スタック自体は変更されません。