Personal tools


From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Initial page (stub))

Latest revision as of 20:38, 2 March 2014

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

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


[edit] 1 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


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


  • 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)

[edit] 2 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.

[edit] 2.1 Data.ByteString.Char8


[edit] 3 Text

For a more efficient processing of text, there is
, defined in the package text. There are two version of
s: lazy and strict.

[edit] 3.1 Lazy Text


[edit] 3.2 Strict Text


[edit] 4 Links

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