module Queue: sig end
このモジュールでは、内部置き換え方式のキューが実装されています。
type 'a
t
'a
の要素を保持するキューの型です。exception Empty
val create : unit -> 'a t
val add : 'a -> 'a t -> unit
add x q
は、要素 x
をキュー q
の終端に追加します。val push : 'a -> 'a t -> unit
push
は add
の別名です。val take : 'a t -> 'a
take q
はキュー q
の最初の要素を取り除いて返します。キューが空である場合は例外 Empty
を発生します。val pop : 'a t -> 'a
pop
は take
の別名です。val peek : 'a t -> 'a
peek q
はキュー q
の最初の要素を返します (取り除きません) 。キューが空である場合は例外 Empty
を発生します。val top : 'a t -> 'a
top
は peek
の別名です。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 q
は q
のすべての要素に次々と関数 f
を適用します。適用順は先頭から終端 (最も最近入れられた要素が最後) です。キュー自体は変更されません。val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
fold f accu q
は List.fold_left f accu l
と同じです (l
は q
の要素のリスト) 。キューは変更されません。val transfer : 'a t -> 'a t -> unit
transfer q1 q2
は q1
の要素すべてを、キュー q2
の終端に追加し、q1
をクリアします。iter (fun x -> add x q2) q1; clear q1
と同じ動作をしますが、一定時間で動きます。