You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<maintainer type="project">
|
|
<email>haskell@gentoo.org</email>
|
|
<name>Gentoo Haskell</name>
|
|
</maintainer>
|
|
<longdescription>
|
|
An API for efficient and convenient construction of vectors.
|
|
It provides the composable `Builder` abstraction, which has instances of the `Monoid` and `Semigroup` classes.
|
|
|
|
[Usage]
|
|
|
|
First you use the `Builder` abstraction to specify the structure of the vector.
|
|
Then you execute the builder to actually produce the vector.
|
|
|
|
[Example]
|
|
|
|
The following code shows how you can efficiently concatenate different datastructures into a single immutable vector:
|
|
|
|
>
|
|
>import qualified Data.Vector as A
|
|
>import qualified VectorBuilder.Builder as B
|
|
>import qualified VectorBuilder.Vector as C
|
|
>
|
|
>
|
|
>myVector :: A.Vector a -> [a] -> a -> A.Vector a
|
|
>myVector vector list element =
|
|
> C.build builder
|
|
> where
|
|
> builder =
|
|
> B.vector vector <>
|
|
> foldMap B.singleton list <>
|
|
> B.singleton element
|
|
</longdescription>
|
|
</pkgmetadata>
|