Like merge
, but tags each output with the branch it came from.
Let through the s2
branch as long as the s1
branch is false
,
listening asynchronously for the left branch to become true
.
Let through the s2
branch as long as the s1
branch is false
,
listening asynchronously for the left branch to become true
.
This halts as soon as either branch halts.
Interleave the two inputs nondeterministically.
Interleave the two inputs nondeterministically. The output stream
halts after BOTH s1
and s2
terminate normally, or in the event
of an uncaught failure on either s1
or s2
. Has the property that
merge(Stream.empty, s) == s
and merge(fail(e), s)
will
eventually terminate with fail(e)
, possibly after emitting some
elements of s
first.
Defined as s1.drain merge s2
.
Defined as s1.drain merge s2
. Runs s1
and s2
concurrently, ignoring
any output of s1
.
Defined as s1 merge s2.drain
.
Defined as s1 merge s2.drain
. Runs s1
and s2
concurrently, ignoring
any output of s1
.
Like merge
, but halts as soon as _either_ branch halts.
Like merge
, but halts as soon as the s1
branch halts.
Like merge
, but halts as soon as the s2
branch halts.