|
|
|
|
|
| Description |
| Streams are infinite lists. Most operations on streams are
completely analogous to the definition in Data.List.
|
|
| Synopsis |
|
|
|
|
| The type of streams
|
|
|
| An infinite sequence.
| | Constructors | | Instances | |
|
|
| Basic functions
|
|
|
| Extract the first element of the sequence.
|
|
|
| Extract the sequence following the head of the stream.
|
|
| Stream transformations
|
|
|
| Apply a function uniformly over all elements of a sequence.
|
|
|
|
| Building streams
|
|
|
iterate f x function produces the infinite sequence
of repeated applications of f to x.
iterate f x = [x, f x, f (f x), ..]
|
|
|
| repeat x returns a constant stream, where all elements are equal to x.
|
|
|
cycle xs returns the infinite repetition of xs:
cycle [1,2,3] = Cons 1 (Cons 2 (Cons 3 (Cons 1 (Cons 2 ...
|
|
|
| The unfold function is similar to the unfold for lists. Note there is no base case: all streams must be infinite.
|
|
| Extracting sublists
|
|
|
| take n xs returns the first n elements of xs.
|
|
|
| The splitAt function takes an integer n and a stream xs
| and returns a pair consisting of the prefix of xs of length
| n and the remaining stream immediately following this prefix.
|
|
|
drop n xs drops the first n elements off the front of the sequence xs.
takeWhile p xs returns the longest prefix of the stream xs for which the predicate p holds.
|
|
|
| dropWhile p xs returns the suffix remaining after takeWhile p xs.
|
|
|
| span p xs returns the longest prefix of xs that satisfies
p, together with the remainder of the stream.
|
|
|
| The break p function is equivalent to span not . p.
|
|
|
| filter p xs, removes any elements from xs that do not satisfy p.
|
|
|
| The partition function takes a predicate p and a stream
xs, and returns a pair of streams. The first stream corresponds
to the elements of xs for which p holds; the second stream
corresponds to the elements of xs for which p does not hold.
|
|
| Sublist predicates
|
|
|
| The isPrefix function returns True if the first argument is a prefix of the second.
|
|
| Indexing streams
|
|
|
| xs !! n returns the element of the stream xs at index
n. Note that the head of the stream has index 0.
|
|
| Zipping and unzipping streams
|
|
|
| The zip function takes two streams and returns a list of corresponding pairs.
|
|
|
| The zipWith function generalizes zip. Rather than tupling
the functions, the elements are combined using the function
passed as the first argument to zipWith.
|
|
|
| The unzip function is the inverse of the zip function.
|
|
| Functions on streams of characters
|
|
|
| The words function breaks a stream of characters into a stream of words,
which were delimited by white space.
|
|
|
| The unwords function is an inverse operation to words. It
joins words with separating spaces.
|
|
|
| The lines function breaks a stream of characters into a list
of strings at newline characters. The resulting strings do not
contain newlines.
|
|
|
| The unlines function is an inverse operation to lines. It
joins lines, after appending a terminating newline to each.
|
|
| Converting to and from an infinite list
|
|
|
| The listToStream converts an infinite list to a
stream. Passing a finite list will result in an error.
|
|
|
| The streamToList converts a stream into an infinite list.
|
|
| Produced by Haddock version 2.1.0 |