Module Queue


module Queue: sig  end
先入れ先出し (First-in first-out) のキューです。

このモジュールでは、内部置き換え方式のキューが実装されています。



type 'a t
型が 'a の要素を保持するキューの型です。

exception Empty
Queue.takeQueue.peek に空のキューを適用した場合発生する例外です。
val create : unit -> 'a t
新しい空のキューを返します。
val add : 'a -> 'a t -> unit
add x q は、要素 x をキュー q の終端に追加します。
val push : 'a -> 'a t -> unit
pushadd の別名です。
val take : 'a t -> 'a
take q はキュー q の最初の要素を取り除いて返します。キューが空である場合は例外 Empty を発生します。
val pop : 'a t -> 'a
poptake の別名です。
val peek : 'a t -> 'a
peek q はキュー q の最初の要素を返します (取り除きません) 。キューが空である場合は例外 Empty を発生します。
val top : 'a t -> 'a
toppeek の別名です。
val clear : 'a t -> unit
キューからすべての要素を消し去ります。
val copy : 'a t -> 'a t
与えられたキューのコピーを作成して返します。
val is_empty : 'a t -> bool
与えられたキューが空ならば true を、そうでなければ false を返します。
val length : 'a t -> int
キューの要素数を返します。
val iter : ('a -> unit) -> 'a t -> unit
iter f qq のすべての要素に次々と関数 f を適用します。適用順は先頭から終端 (最も最近入れられた要素が最後) です。キュー自体は変更されません。
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
fold f accu qList.fold_left f accu l と同じです (lq の要素のリスト) 。キューは変更されません。
val transfer : 'a t -> 'a t -> unit
transfer q1 q2q1 の要素すべてを、キュー q2 の終端に追加し、q1 をクリアします。iter (fun x -> add x q2) q1; clear q1 と同じ動作をしますが、一定時間で動きます。