Module Stream


module Stream: sig  end
ストリームと構文解析器です。


type 'a t
'a の値を持つストリームの型です。

exception Failure
ストリームパターンの最初のコンポーネントとして受け入れられるものがなかったとき構文解析器が発生する例外です。
exception Error of string
ストリームパターンの最初のコンポーネントは受け入れられたが、それに続くコンポーネントがなかったとき発生する例外です。


Stream builders

注意: これらの関数は高速アクセス用のストリームを作成します。[< >] で生成したストリームと一緒にすることは出来ません。一緒にしたようなストリームにアクセスしようとすると例外 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 : Pervasives.in_channel -> char t
入力チャンネルから文字を読んで、その文字の列を持つストリームを生成します。


Stream iterator


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


Predefined parsers


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


Useful functions


val peek : 'a t -> 'a option
ストリームの最初の要素を持つ Some を返します。ストリームが空だった場合は None を返します。
val junk : 'a t -> unit
ストリームの最初の要素を取り除きます。何もしないかもしれません (possibly unfreezing it before.) 。
val count : 'a t -> int
現在のストリーム要素のカウントを返します。つまり捨てられたストリーム要素の数です。
val npeek : int -> 'a t -> 'a list
npeek n はストリームの先頭から n 個の要素を取り出して返します。残っている要素が n 個より少なかったら、残るすべての要素を返します。