Модуль Stream
module Stream: sig .. end
Потоки и парсеры.
type 'a t
Тип потоков, содержащих значения типа 'a.
exception Failure
Возникает у парсеров, когда ни один из первых компонентов шаблонов потока не принят.
exception Error of string
Возникает у парсеров, когда первый компонент шаблона потока принят, но один из последующих компонентов отклонен.
Построители потоков
val from : (int -> 'a option) -> 'a t
Stream.from f возвращает поток, построенный из функции f. Для создания нового элемента потока вызывается функция f с текущим значением счётчика потока. Пользовательская функция f должна вернуть либо Some <value> для значения, либо None для указания конца потока.
Обратите внимание, что индексы, передаваемые в f, могут не начинаться с 0 в общем случае. Например, [< '0; '1; Stream.from f >] вызовет f в первый раз со значением счётчика 2.
val of_list : 'a list -> 'a t
Возвращает поток, содержащий элементы списка в том же порядке.
val of_string : string -> char t
Возвращает поток символов строки-параметра.
val of_bytes : bytes -> char t
Возвращает поток символов байтового параметра.
- Since 4.02.0
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
Возвращает первый элемент потока и удаляет его из потока.
-
Raises
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 элементов.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Stream.html