Strings

From HaskellWiki
(Redirected from String)

This article is a stub. You can help by expanding it.

There are several types of strings that can be used in Haskell programs.

String[edit]

String is the only string type mandated by the language standard, and as such is overwhelmingly the most common, especially for non-performance-sensitive applications. It is simply a type synonym for [Char].

Pros:

  • conceptually simple and easy to use
  • interfaces well with other list functions

Cons:

  • massive overhead, up to 4 words per character, which also has speed implications
  • not pedantically Unicode-correct in some cases (e.g. there are strings which change length when changing case, so map toLower is not accurate in that case)

ByteString[edit]

ByteString is a type defined in the package bytestring, available from Hackage.

Bytestrings are sequences of bytes not characters, and aren't really a text type at all. They are best used for binary data.

They are low-overhead in space terms and very heavily optimised – they are a key part of writing high-performance code in Haskell.

Data.ByteString.Char8[edit]

TODO

Text[edit]

For a more efficient processing of text, there is Text, defined in the package text.

There are two version of Texts: lazy and strict.


Lazy Text[edit]

TODO


Strict Text[edit]

TODO


Links[edit]

  • string-conversions; this package provides a simple type class for converting values of different string types into values of other string types.