[Haskell-cafe] Motion to unify all the string data types
Bas van Dijk
v.dijk.bas at gmail.com
Mon Nov 12 08:52:52 CET 2012
On 10 November 2012 17:57, Johan Tibell <johan.tibell at gmail.com> wrote:
> It better communicates intent. A e.g. lazy byte string can be used for two
> separate things:
>
> * to model a stream of bytes, or
> * to avoid costs due to concatenating strings.
>
> By using a strict byte string you make it clear that you're not trying to do
> the former (at some potential cost due to the latter). When you want to do
> the former it should be clear to the consumer that he/she better consume the
> string in an incremental manner as to preserve laziness and avoid space
> leaks (by forcing the whole string).
Good advice.
And when you want to do the latter you should use a Builder[1] (or [2]
if you're working with text).
Bas
[1] http://hackage.haskell.org/packages/archive/bytestring/0.10.2.0/doc/html/Data-ByteString-Builder.html
[2] http://hackage.haskell.org/packages/archive/text/0.11.2.3/doc/html/Data-Text-Lazy-Builder.html
More information about the Haskell-Cafe
mailing list