Module Stream


module Stream: sig .. end
ストリームと解析器

type 'a t 
'a 型の値を保持するストリームの型。
exception Failure
ストリームパターンの最初の要素が受理されなかった場合に解析器が発生させる例外です。
exception Error of string
ストリームパターンの最初の要素は受理されたものの、残りの要素のいずれかが棄却された場合に解析器が発生させる例外です。

ストリーム構築子

警告: これらの関数は高速にアクセスできるストリームを作成します。 これらの関数で作成されたストリームを [< >] で作成したストリームと混ぜることはできません。 そのようなストリームにアクセスすると Failure 例外が発生します。

val from : (int -> 'a option) -> 'a t
Stream.from f は関数 f によって構築されたストリームを返します。 ストリームの新たな要素を作成するために、関数 f を現在のストリームの番号とともに呼び出します。 関数 f は値がある場合には Some <value> を返し、ストリームの終端の場合には None を返さなければなりません。
val of_list : 'a list -> 'a t
与えられたリストの要素を同じ順番で保持するストリームを返します。
val of_string : string -> char t
引数の文字列内の文字から構成されるストリームを返します。
val of_channel : in_channel -> char t
入力チャネルから読み込んだ文字から構成されるストリームを返します。

ストリーム反復子


val iter : ('a -> unit) -> 'a t -> unit
Stream.iter f s はストリーム s 全体を走査し、各要素に順番に関数 f を適用します。

定義済みの解析器


val next : 'a t -> 'a
ストリームの最初の要素を返し、その要素をストリームから取り除きます。 ストリームが空の場合には Stream.Failure 例外が発生します。
val empty : 'a t -> unit
ストリームが空の場合には () を返し、そうでなければ Stream.Failure 例外を発生させます。

便利な関数


val peek : 'a t -> 'a option
ストリームの最初の要素を Some で包んだものを返します。 ストリームが空の場合には None を返します。
val junk : 'a t -> unit
ストリームの最初の要素を取り除きます。必要であれば前以ってストリームの凍結を解除します。
val count : 'a t -> int
ストリームの要素の現在の番号(読み出されたストリームの要素)を返します。
val npeek : int -> 'a t -> 'a list
npeek n はストリームの最初の n 個の要素のリストを返します。 残りの要素が n 個より少ない場合は、その要素すべてをリストにして返します。