|
Control.Concurrent.SCC.Components |
|
|
|
|
Description |
Module Components defines primitive components of Producer, Consumer, Transducer and Splitter types,
defined in the Foundation and ComponentTypes modules.
|
|
Synopsis |
|
fromList :: forall m x. (Monad m, Typeable x) => [x] -> Producer m x [x] | | toList :: forall m x. (Monad m, Typeable x) => Consumer m x [x] | | fromFile :: String -> Producer IO Char () | | fromHandle :: Handle -> Bool -> Producer IO Char () | | fromStdIn :: Producer IO Char () | | appendFile :: String -> Consumer IO Char () | | toFile :: String -> Consumer IO Char () | | toHandle :: Handle -> Bool -> Consumer IO Char () | | toStdOut :: Consumer IO Char () | | toPrint :: forall x. (Show x, Typeable x) => Consumer IO x () | | suppress :: forall m x y. (Monad m, Typeable x) => Consumer m x () | | erroneous :: forall m x. (Monad m, Typeable x) => String -> Consumer m x () | | asis :: forall m x. (Monad m, Typeable x) => Transducer m x x | | everything :: forall m x. (ParallelizableMonad m, Typeable x) => Splitter m x | | nothing :: forall m x. (ParallelizableMonad m, Typeable x) => Splitter m x | | one :: forall m x. (ParallelizableMonad m, Typeable x) => Splitter m x | | substring :: forall m x. (ParallelizableMonad m, Eq x, Typeable x) => [x] -> Splitter m x | | substringMatch :: forall m x. (ParallelizableMonad m, Eq x, Typeable x) => [x] -> Splitter m x | | group :: forall m x. (Monad m, Typeable x) => Transducer m x [x] | | concatenate :: forall m x. (Monad m, Typeable x) => Transducer m [x] x | | concatSeparate :: forall m x. (Monad m, Typeable x) => [x] -> Transducer m [x] x | | lowercase :: forall m. Monad m => Transducer m Char Char | | uppercase :: forall m. Monad m => Transducer m Char Char | | whitespace :: forall m. ParallelizableMonad m => Splitter m Char | | letters :: forall m. ParallelizableMonad m => Splitter m Char | | digits :: forall m. ParallelizableMonad m => Splitter m Char | | line :: forall m. ParallelizableMonad m => Splitter m Char | | nonEmptyLine :: forall m. ParallelizableMonad m => Splitter m Char | | count :: forall m x. (Monad m, Typeable x) => Transducer m x Integer | | toString :: forall m x. (Monad m, Show x, Typeable x) => Transducer m x String | | ioCost :: Int |
|
|
|
List producers and consumers
|
|
|
fromList produces the contents of the given list argument.
|
|
|
Consumer toList copies the given source into a list.
|
|
I/O producers and consumers
|
|
|
Producer fromFile opens the named file and feeds the given sink from its contents.
|
|
|
Producer fromHandle feeds the given sink from the open file handle. The argument doClose determines if
| handle should be closed when the handle is consumed or the sink closed.
|
|
|
Producer fromStdIn feeds the given sink from the standard input.
|
|
|
Consumer appendFile opens the name file and appends the given source to it.
|
|
|
Consumer toFile opens the named file and copies the given source into it.
|
|
|
Consumer toHandle copies the given source into the open file handle. The argument doClose determines if
| handle should be closed once the entire source is consumed and copied.
|
|
|
Consumer toStdOut copies the given source into the standard output.
|
|
|
|
Generic consumers
|
|
|
The suppress transducer suppresses all input it receives. It is equivalent to substitute []
|
|
|
The erroneous transducer reports an error if any input reaches it.
|
|
Generic transducers
|
|
|
Transducer asis passes its input through unmodified.
|
|
Generic splitters
|
|
|
Splitter everything feeds its entire input into its true sink.
|
|
|
Splitter nothing feeds its entire input into its false sink.
|
|
|
Splitter one feeds all input values to its true sink, treating every value as a separate section.
|
|
|
Splitter substring feeds to its true sink all input parts that match the contents of the given list
argument. If two overlapping parts of the input both match the argument, only the first one wins.
|
|
|
Splitter substringMatch feeds to its true sink all input parts that match the contents of the given list
argument. If two overlapping parts of the input match the argument, both are considered true.
|
|
List transducers
|
|
The following laws hold:
|
|
|
Transducer group collects all its input values into a single list.
|
|
|
Transducer concatenate flattens the input stream of lists of values into the output stream of values.
|
|
|
|
Character stream components
|
|
|
The lowercase transforms all uppercase letters in the input to lowercase, leaving the rest unchanged.
|
|
|
The uppercase transforms all lowercase letters in the input to uppercase, leaving the rest unchanged.
|
|
|
Splitter whitespace feeds all white-space characters into its true sink, all others into false.
|
|
|
Splitter letters feeds all alphabetical characters into its true sink, all other characters into false.
|
|
|
Splitter digits feeds all digits into its true sink, all other characters into false.
|
|
|
The sectioning splitter line feeds line-ends into its false sink, and line contents into true. A single
line-end can be formed by any of the character sequences "\n", "\r", "\r\n", or "\n\r".
|
|
|
Splitter nonEmptyLine feeds line-ends into its false sink, and all other characters into true.
|
|
Oddballs
|
|
|
The count transducer counts all its input values and outputs the final tally.
|
|
|
|
|
|
Produced by Haddock version 2.3.0 |