Spec-Zone.ru › OCaml 4.14

Модуль 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API