Queueこのページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 last mod. 2009-09-10 (木) 17:33:46
module Queue: sig end 先入れ先出し (First-in first-out) のキューです。 このモジュールでは、内部置き換え方式のキューが実装されています。 type 'a t 型が 'a の要素を保持するキューの型です。 exception Empty Queue.take や Queue.peek に空のキューを適用した場合発生する例外です。 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 と同じ動作をしますが、定数時間で動きます。 |