Indicates that it may be beneficial to evaluate the first argument in parallel with the second. Returns the value of the second argument.
a `par` b is exactly equivalent semantically to b.
par is generally used when the value of a is likely to be required later, but not immediately. Also it is a good idea to ensure that a is not a trivial computation, otherwise the cost of spawning it in parallel overshadows the benefits obtained by running it in parallel.
Note that actual parallelism is only supported by certain implementations (GHC with the -threaded option, and GPH, for now). On other implementations, par a b = b.
(parens p) parses "P", "(P0)", "((P0))", etc, p parses "P" in the current precedence context and parses "P0" in precedence context zero
A parser for versions in the format produced by showVersion.
The partition function takes a predicate a list and returns the pair of lists of elements which do and do not satisfy the predicate, respectively; i.e.,
> partition p xs == (filter p xs, filter (not . p) xs)
Partitions a list of Either into two lists All the Left elements are extracted, in order, to the first component of the output. Similarly the Right elements are extracted to the second component of the output.
A paragraph formatting utility. Provided with input text that is arbitrarily split amongst several strings, this utility will reformat the text into paragraphs which do not exceed the specified width. Paragraphs are delimited by blank lines in the input.
This package provides a library for parallel programming.
This package provides combinators for sequencing IO actions onto a thread pool. The thread pool is guaranteed to contain no more unblocked threads than a user-specified upper limit, thus minimizing contention.
Furthermore, the parallel combinators can be used reentrantly - your parallel actions can spawn more parallel actions - without violating this property of the thread pool.
The package is inspired by the thread http://thread.gmane.org/gmane.comp.lang.haskell.cafe/56499/focus=56521. Thanks to Neil Mitchell and Bulat Ziganshin for some of the code this package is based on.
This library is useful for running a large amount of parallel tasks that run on top of the IO monad, executing them in batches from a work queue.
It has several features aimed at monitoring the progress of the tasks and tries to be reasonably efficient (in space and time) for large numbers (millions) of tasks. There is also caching support available so that the results of running the task can be preserved between runs of the same program, which is useful for doing scientific analysis.
This Haskell library provides an implementation of parallel search based on the search tree provided by the package tree-monad.
This library provides an implementation of parameterized types using type-level computations to implement the type parameters and emulate dependent types. Right now only fixed-sized vectors are provided. A tutorial on how to use them can be found at http://www.ict.kth.se/forsyde/files/tutorial/tutorial.html#FSVec
Like evalBuffer but evaluates the list elements in parallel when pushing them into the buffer.
General parser combinators that will work with any parser combinator library. At the moment, the contents of the library is not particularly structured, and it is extended as I find it necessary.
Parser monad instance for Attoparsec. You can easily define this yourself, but it is provided here for convenience.
Parser monad instance for Parsec. You can easily define this yourself, but it is provided here for convenience.
Parcom provides parser combinator functionality in a string-type-agnostic way; it supports strict ByteStrings (with Word8 tokens) and any list type (with the element type as the token type) out-of-the-box, including plain old String. Any other stream-of-tokens type can be hooked into the library; unlike Parsec, none of the built-in parsers assumes char-like tokens.
Show more results