split is:package
Combinator library for splitting lists.
A collection of various methods for splitting lists into parts, akin
to the "split" function found in several mainstream languages. Here is
its tale:
Once upon a time the standard
Data.List module held no function
for splitting a list into parts according to a delimiter. Many a brave
lambda-knight strove to add such a function, but their striving was in
vain, for Lo, the Supreme Council fell to bickering amongst themselves
what was to be the essential nature of the One True Function which
could cleave a list in twain (or thrain, or any required number of
parts).
And thus came to pass the split package, comprising divers functions
for splitting a list asunder, each according to its nature. And the
Supreme Council had no longer any grounds for argument, for the
favored method of each was contained therein.
To get started, see the
Data.List.Split module.
Fast Splittable PRNG
Pure Haskell implementation of SplitMix described in
Guy L. Steele, Jr., Doug Lea, and Christine H. Flood. 2014. Fast
splittable pseudorandom number generators. In Proceedings of the 2014
ACM International Conference on Object Oriented Programming Systems
Languages & Applications (OOPSLA '14). ACM, New York, NY, USA,
453-472. DOI:
https://doi.org/10.1145/2660193.2660195
The paper describes a new algorithm
SplitMix for
splittable pseudorandom number generator that is quite fast: 9
64 bit arithmetic/logical operations per 64 bits generated.
SplitMix is tested with two standard statistical test suites
(DieHarder and TestU01, this implementation only using the former) and
it appears to be adequate for "everyday" use, such as Monte Carlo
algorithms and randomized data structures where speed is important.
In particular, it
should not be used for cryptographic or security
applications, because generated sequences of pseudorandom values
are too predictable (the mixing functions are easily inverted, and two
successive outputs suffice to reconstruct the internal state).
Random samplers for some common distributions, based on splitmix.
Random samplers for some common distributions, as well as a convenient
interface for composing them, based on splitmix. Please see the README
on GitHub at
https://github.com/ocramz/splitmix-distributions#readme
Not on Stackage, so not searched.
Control.Concurrent.Chan split into sending and receiving halves.
Not on Stackage, so not searched.
Split Epimorphisms and Monomorphisms
Executable only. Split a big audio file into pieces at positions of silence
Not on Stackage, so not searched.
STM's TChan split into sending and receiving halves.
Not on Stackage, so not searched.
Use numerical ranges to split out certain lines from a file.
MVars and Channels with distinguished input and output side
MVars and Channels with distinguished input and output side. When
threads communicate via an MVar or a Chan there are often clearly
defined roles, which thread is the sender and which one is receiver.
We provide wrappers around the standard concurrency communication
channels that make the distinction clear and type safe.
For example, if a function has a parameter of type
TChan.In
then it is sure that it will only write to that channel. Additionally
if the compiler warns about an unused
TChan.Out that was
created by
TChan.new then you know that the receiver part of
your communication is missing.
This package requires only Haskell 98.
Related packages:
- stm-split: transactional communication in STM
monad
- chan-split: follows the same idea as this package and
stm-split but requires multi-parameter type classes with
functional dependencies.
- privileged-concurrency:
- split-channel:
Not on Stackage, so not searched.
A library to provide special kind of two-column output for Phladiprelio.
Combinator library for splitting vectors.
This package aims to be a vector-based drop-in replacement for the
list-based split package. For more information see the haddocs or
checkout the source on github.
Not on Stackage, so not searched.
Partition the sequence of items to the subsequences in the order given
Not on Stackage, so not searched.
Split a lazy bytestring at boundaries defined by an attoparsec parser
Not on Stackage, so not searched.
Concurrent Chans as read/write pairs. Also provides generic Chan pair class.
Not on Stackage, so not searched.
Haskell source splitter driven by special comments.
Not on Stackage, so not searched.
split two-column PDFs, so there is one column per page
TMVars, TVars and TChans with distinguished input and output side
Transactional MVars, Vars and Channels with distinguished input and
output side. When threads communicate via a TMVar, a TVar or a TChan
there are often clearly defined roles, which thread is the sender and
which one is receiver. We provide wrappers around the standard
concurrency communication channels that make the distinction clear and
type safe.
For example, if a function has a parameter of type TChan.In
then it is sure that it will only write to that channel. Additionally
if the compiler warns about an unused TChan.Out that was
created by TChan.new then you know that the receiver part of
your communication is missing.
See also package concurrent-split for non-transactional
communication. This package follows the same idea as
chan-split but is strictly Haskell 98.
Not on Stackage, so not searched.
Case splitting plugin