| Haskell Hierarchical Libraries (base package) | Source code | Contents | Index

Data.PackedString

Portability | portable
Stability | experimental
Maintainer | libraries@haskell.org

Contents

The `PackedString` type
Converting to and from `PackedString`s
I/O with `PackedString`s
List-like manipulation functions

Description
This API is deprecated. You might be able to use Data.ByteString or Data.ByteString.Char8, provided you don't need full Unicode support. The long term aim is to provide a Unicode layer on Data.ByteString, and then to provide a replacement for this Data.PackedString API based on that.
Synopsis

data PackedString
packString :: String -> PackedString
unpackPS :: PackedString -> String
hPutPS :: Handle -> PackedString -> IO ()
hGetPS :: Handle -> Int -> IO PackedString
nilPS :: PackedString
consPS :: Char -> PackedString -> PackedString
headPS :: PackedString -> Char
tailPS :: PackedString -> PackedString
nullPS :: PackedString -> Bool
appendPS :: PackedString -> PackedString -> PackedString
lengthPS :: PackedString -> Int
indexPS :: PackedString -> Int -> Char
mapPS :: (Char -> Char) -> PackedString -> PackedString
filterPS :: (Char -> Bool) -> PackedString -> PackedString
reversePS :: PackedString -> PackedString
concatPS :: [PackedString] -> PackedString
elemPS :: Char -> PackedString -> Bool
substrPS :: PackedString -> Int -> Int -> PackedString
takePS :: Int -> PackedString -> PackedString
dropPS :: Int -> PackedString -> PackedString
splitAtPS :: Int -> PackedString -> (PackedString, PackedString)
foldlPS :: (a -> Char -> a) -> a -> PackedString -> a
foldrPS :: (Char -> a -> a) -> a -> PackedString -> a
takeWhilePS :: (Char -> Bool) -> PackedString -> PackedString
dropWhilePS :: (Char -> Bool) -> PackedString -> PackedString
spanPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)
breakPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)
linesPS :: PackedString -> [PackedString]
unlinesPS :: [PackedString] -> PackedString
wordsPS :: PackedString -> [PackedString]
unwordsPS :: [PackedString] -> PackedString
splitPS :: Char -> PackedString -> [PackedString]
splitWithPS :: (Char -> Bool) -> PackedString -> [PackedString]
joinPS :: PackedString -> [PackedString] -> PackedString

The `PackedString` type
data PackedString

A space-efficient representation of a `String`, which supports various efficient operations. A `PackedString` contains full Unicode `Char`s.
Instances

Eq PackedString
Ord PackedString
Show PackedString
Typeable PackedString

Converting to and from `PackedString`s
packString :: String -> PackedString
Convert a `String` into a `PackedString`
unpackPS :: PackedString -> String
Convert a `PackedString` into a `String`
I/O with `PackedString`s
hPutPS :: Handle -> PackedString -> IO ()
Outputs a `PackedString` to the specified `Handle`. NOTE: the representation of the `PackedString` in the file is assumed to be in the ISO-8859-1 encoding. In other words, only the least significant byte is taken from each character in the `PackedString`.
hGetPS :: Handle -> Int -> IO PackedString
Read a `PackedString` directly from the specified `Handle`. This is far more efficient than reading the characters into a `String` and then using `packString`. NOTE: as with `hPutPS`, the string representation in the file is assumed to be ISO-8859-1.
List-like manipulation functions
nilPS :: PackedString
The `nilPS` value is the empty string.
consPS :: Char -> PackedString -> PackedString
The `consPS` function prepends the given character to the given string.
headPS :: PackedString -> Char
The `headPS` function returns the first element of a `PackedString` or throws an error if the string is empty.
tailPS :: PackedString -> PackedString
The `tailPS` function returns the tail of a `PackedString` or throws an error if the string is empty.
nullPS :: PackedString -> Bool
The `nullPS` function returns True iff the argument is null.
appendPS :: PackedString -> PackedString -> PackedString
The `appendPS` function appends the second string onto the first.
lengthPS :: PackedString -> Int
The `lengthPS` function returns the length of the input list. Analogous to `length`.
indexPS :: PackedString -> Int -> Char
The `indexPS` function returns the character in the string at the given position.
mapPS :: (Char -> Char) -> PackedString -> PackedString
The `mapPS` function applies a function to each character in the string.
filterPS :: (Char -> Bool) -> PackedString -> PackedString
The `filterPS` function filters out the appropriate substring.
reversePS :: PackedString -> PackedString
The `reversePS` function reverses the string.
concatPS :: [PackedString] -> PackedString
The `concatPS` function concatenates a list of `PackedString`s.
elemPS :: Char -> PackedString -> Bool
The `elemPS` function returns True iff the given element is in the string.
substrPS :: PackedString -> Int -> Int -> PackedString
The `substrPS` function takes a `PackedString` and two indices and returns the substring of the input string between (and including) these indices.
takePS :: Int -> PackedString -> PackedString
The `takePS` function takes the first `n` characters of a `PackedString`.
dropPS :: Int -> PackedString -> PackedString
The `dropPS` function drops the first `n` characters of a `PackedString`.
splitAtPS :: Int -> PackedString -> (PackedString, PackedString)
The `splitWithPS` function splits a `PackedString` at a given index.
foldlPS :: (a -> Char -> a) -> a -> PackedString -> a
The `foldlPS` function behaves like `foldl` on `PackedString`s.
foldrPS :: (Char -> a -> a) -> a -> PackedString -> a
The `foldrPS` function behaves like `foldr` on `PackedString`s.
takeWhilePS :: (Char -> Bool) -> PackedString -> PackedString
The `takeWhilePS` function is analogous to the `takeWhile` function.
dropWhilePS :: (Char -> Bool) -> PackedString -> PackedString
The `dropWhilePS` function is analogous to the `dropWhile` function.
spanPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)
The `spanPS` function returns a pair containing the result of running both `takeWhilePS` and `dropWhilePS`.
breakPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)
The `breakPS` function breaks a string at the first position which satisfies the predicate.
linesPS :: PackedString -> [PackedString]
The `linesPS` function splits the input on line-breaks.
unlinesPS :: [PackedString] -> PackedString
The `unlinesPS` function concatenates the input list after interspersing newlines.
wordsPS :: PackedString -> [PackedString]
The `wordsPS` function is analogous to the `words` function.
unwordsPS :: [PackedString] -> PackedString
The `unwordsPS` function is analogous to the `unwords` function.
splitPS :: Char -> PackedString -> [PackedString]
The `splitPS` function splits the input string on each occurrence of the given `Char`.
splitWithPS :: (Char -> Bool) -> PackedString -> [PackedString]
The `splitWithPS` function takes a character predicate and splits the input string at each character which satisfies the predicate.
joinPS :: PackedString -> [PackedString] -> PackedString
The `joinPS` function takes a `PackedString` and a list of `PackedString`s and concatenates the list after interspersing the first argument between each element of the list.
Produced by Haddock version 0.8