Strings
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 Text
s: 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.
- convertible-text, a text conversion package (depricated)