high-performance left-fold enumerators; profiling libraries
DescriptionTypical buffer–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–purpose; it is difficult or impossible to compose buffer–based processing loops. Haskell's concept of "lazy I/O" 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–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. This package provides a library for the Haskell programming language, compiled for profiling. See http://www.haskell.org/ for more information on Haskell.
762 other people were interested in this package here. The newest known version of this software is 0.4.20-10+b2 (Information last updated about 15 hours ago.)
Upload new screenshots
Thanks for uploading more screenshots. Please note:
- Your screenshot should contain a typical scene when working with it.
- Take only a screenshot of the respective application and not of your whole desktop (unless the screenshot is meant for a window manager).
- Your screenshots must be in PNG format.
- You can upload multiple images at once.
- Your screenshot need to be approved by the moderators first. You will already see your screenshot but it will not be visible to others instantly. If moderators reject your upload you will get notified next time you visit this site (requires cookies).
- Images larger than 800x600 pixels will automatically be reduced. So don't try to capture too much detail in a screenshot. It may become unreadable. Shrink the applications window if possible.
- Screenshots are made public and can freely be used by anyone.
- Useful programs for making screenshots are shutter, ksnapshot (KDE), gimp, xwd or scrot. See the Debian wiki for more information on how to make screenshots under Debian.
- Please set your language to english so that everybody understands it. If you don't use english by default please start your application from a shell using after setting "export LANG=C".