Stream

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2009-09-10 (木) 14:13:40

Chapter 20 標準ライブラリ

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 個より少なかったら、残るすべての要素を返します。

新規 編集 添付