loops: Fast imperative-style loops
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
loops
is a library for fast, imperative-style loops with a clean syntax.
Features
Fast, imperative-style loops with a clean syntax. Bind (
>>=
) nests loops, so indo
-notation, each subsequent line is nested inside loops that appear above it.Iteration over common data structures, like lists and vectors.
Robust performance because there is no reliance on fusion.
NEW! Loop-unrolling to arbitrary depth. Unrollable loop combinators are provided in
Control.Monad.Loop.Unroll
. (The simple, "rolled" interface is still provided inControl.Monad.Loop
.) The unrolling depth set at the call site at compile time. My benchmarks show that folding over unrolled loops is up to 25% faster than folding over unboxed vectors!
For best performance, please compile your code with -O2
. You should also
use GHC's LLVM backend if possible; it generally produces faster executables.
[Skip to Readme]
Properties
Versions | 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.0.1, 0.2.0.1, 0.2.0.2 |
---|---|
Change log | None available |
Dependencies | base (>=4.6 && <5), primitive (>=0.5 && <1), transformers (>=0.3 && <1), vector (>=0.10 && <1) [details] |
License | BSD-3-Clause |
Copyright | (c) Thomas Tuegel 2014 |
Author | Thomas Tuegel |
Maintainer | ttuegel@gmail.com |
Category | Control |
Bug tracker | https://github.com/ttuegel/loops/issues |
Source repo | head: git clone https://github.com/ttuegel/loops.git |
Uploaded | by ThomasTuegel at 2014-06-12T20:27:16Z |
Modules
[Index]
Downloads
- loops-0.2.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees