Copyright | (c) 2017 Composewell Technologies |
---|---|
License | BSD3 |
Maintainer | streamly@composewell.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
To run examples in this module:
>>>
import qualified Streamly.Prelude as Stream
Synopsis
- newtype ZipSerialM m a = ZipSerialM {
- getZipSerialM :: Stream m a
- type ZipSerial = ZipSerialM IO
- consMZip :: Monad m => m a -> ZipSerialM m a -> ZipSerialM m a
- zipWithK :: Monad m => (a -> b -> c) -> Stream m a -> Stream m b -> Stream m c
- zipWithMK :: Monad m => (a -> b -> m c) -> Stream m a -> Stream m b -> Stream m c
- type ZipStream = ZipSerialM
Documentation
newtype ZipSerialM m a Source #
For ZipSerialM
streams:
(<>) = serial
(*) = 'Streamly.Prelude.serial.zipWith' id
Applicative evaluates the streams being zipped serially:
>>>
s1 = Stream.fromFoldable [1, 2]
>>>
s2 = Stream.fromFoldable [3, 4]
>>>
s3 = Stream.fromFoldable [5, 6]
>>>
Stream.toList $ Stream.fromZipSerial $ (,,) <$> s1 <*> s2 <*> s3
[(1,3,5),(2,4,6)]
Since: 0.2.0 (Streamly)
Since: 0.8.0
ZipSerialM | |
|
Instances
type ZipSerial = ZipSerialM IO Source #
consMZip :: Monad m => m a -> ZipSerialM m a -> ZipSerialM m a Source #
Deprecated
type ZipStream = ZipSerialM Source #
Deprecated: Please use ZipSerialM
instead.
Since: 0.1.0