Module Stdlib.Stream
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt:DkSDKProject_DeclareAvailable(ocaml CONSTRAINT "= 4.14.0" FINDLIBS str unix runtime_events threads dynlink) DkSDKProject_MakeAvailable(ocaml)Add the
Findlib::ocamllibrary to any desired targets insrc/*/CMakeLists.txt:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::ocaml)Click your IDE's
Buildbutton
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install ocaml.4.14.0Edit your
dune-projectand add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (ocaml (>= 4.14.0))))Then run:
dune build *.opam # if this fails, run: dune buildEdit your
<package>.opamfile and add:depends: [ # ... existing dependencies ... "ocaml" {>= "4.14.0"} ]Then run:
opam install . --deps-only
FINALLY, add the library to any desired (library)and/or (executable) targets in your **/dune files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
))type``!'a t
The type of streams holding values of type 'a.
exceptionFailure
Raised by parsers when none of the first components of the stream patterns is accepted.
exceptionErrorofstring
Raised by parsers when the first component of a stream pattern is accepted, but one of the following components is rejected.
Stream builders
valfrom : ``(``int->'aoption``)``->'at
Stream.from f returns a stream built from the function f. To create
a new stream element, the function f is called with the current stream
count. The user function f must return either Some <value> for a
value or None to specify the end of the stream.
Do note that the indices passed to f may not start at 0 in the
general case. For example, [< '0; '1; Stream.from f >] would call f
the first time with count 2.
valof_list :'alist``->'at
Return the stream holding the elements of the list in the same order.
valof_string : ``string->``chart
Return the stream of the characters of the string parameter.
valof_bytes : ``bytes->``chart
Return the stream of the characters of the bytes parameter.
- since 4.02.0
valof_channel :in_channel->``chart
Return the stream of the characters read from the input channel.
Stream iterator
valiter : ``('a->unit)``->'at->unit
Stream.iter f s scans the whole stream s, applying function f in
turn to each stream element encountered.
Predefined parsers
valnext :'at->'a
Return the first element of the stream and remove it from the stream.
-
raises Stream.Failure
if the stream is empty.
valempty :'at->unit
Return () if the stream is empty, else raise
Stream.Failure.
Useful functions
valpeek :'at->'aoption
Return Some of "the first element" of the stream, or None if the
stream is empty.
valjunk :'at->unit
Remove the first element of the stream, possibly unfreezing it before.
valcount :'at->int
Return the current count of the stream elements, i.e. the number of the stream elements discarded.
valnpeek : ``int->'at->'alist
npeek n returns the list of the n first elements of the stream, or
all its remaining elements if less than n elements are available.
