diff options
Diffstat (limited to 'dev-haskell/enumerator/metadata.xml')
-rw-r--r-- | dev-haskell/enumerator/metadata.xml | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/dev-haskell/enumerator/metadata.xml b/dev-haskell/enumerator/metadata.xml deleted file mode 100644 index 3e0ee48d3525..000000000000 --- a/dev-haskell/enumerator/metadata.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>haskell@gentoo.org</email> - <name>Gentoo Haskell</name> - </maintainer> - <longdescription> - Typical buffer&#x2013;based incremental I/O is based around a single loop, - which reads data from some source (such as a socket or file), transforms - it, and generates one or more outputs (such as a line count, HTTP - responses, or modified file). Although efficient and safe, these loops are - all single&#x2013;purpose; it is difficult or impossible to compose - buffer&#x2013;based processing loops. - - Haskell&#x2019;s concept of &#x201C;lazy I/O&#x201D; allows pure code to - operate on data from an external source. However, lazy I/O has several - shortcomings. Most notably, resources such as memory and file handles can - be retained for arbitrarily long periods of time, causing unpredictable - performance and error conditions. - - Enumerators are an efficient, predictable, and safe alternative to lazy - I/O. Discovered by Oleg Kiselyov, they allow large datasets to be processed - in near&#x2013;constant space by pure code. Although somewhat more complex - to write, using enumerators instead of lazy I/O produces more correct - programs. - - This library contains an enumerator implementation for Haskell, designed to - be both simple and efficient. Three core types are defined, along with - numerous helper functions: - - * /Iteratee/: Data sinks, analogous to left folds. Iteratees consume - a sequence of /input/ values, and generate a single /output/ value. - Many iteratees are designed to perform side effects (such as printing to - @stdout@), so they can also be used as monad transformers. - - * /Enumerator/: Data sources, which generate input sequences. Typical - enumerators read from a file handle, socket, random number generator, or - other external stream. To operate, enumerators are passed an iteratee, and - provide that iteratee with input until either the iteratee has completed its - computation, or EOF. - - * /Enumeratee/: Data transformers, which operate as both enumerators and - iteratees. Enumeratees read from an /outer/ enumerator, and provide the - transformed data to an /inner/ iteratee. - </longdescription> -</pkgmetadata> |