Haskell Hierarchical Libraries (base package)ContentsIndex
Data.PackedString
Portability portable
Stability experimental
Maintainer libraries@haskell.org
Contents
The PackedString type
Converting to and from PackedStrings
I/O with PackedStrings
List-like manipulation functions
Description
An efficient implementation of strings.
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 Chars.
Instances
Eq PackedString
Ord PackedString
Show PackedString
Typeable PackedString
Converting to and from PackedStrings
packString :: String -> PackedString
Convert a String into a PackedString
unpackPS :: PackedString -> String
Convert a PackedString into a String
I/O with PackedStrings
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 signficant 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 PackedStrings.
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 PackedStrings.
foldrPS :: (Char -> a -> a) -> a -> PackedString -> a
The foldrPS function behaves like foldr on PackedStrings.
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 occurance 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 PackedStrings and concatenates the list after interspersing the first argument between each element of the list.
Produced by Haddock version 0.6