Portability | portable |
---|---|
Stability | experimental |
Maintainer | libraries@haskell.org |
This API is deprecated. You might be able to use Data.ByteString or Data.ByteString.Char8 from the bytestring package, 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.
- 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 Source
A space-efficient representation of a String
, which supports various
efficient operations. A PackedString
contains full Unicode Char
s.
Converting to and from PackedString
s
packString :: String -> PackedStringSource
Convert a String
into a PackedString
unpackPS :: PackedString -> StringSource
Convert a PackedString
into a String
I/O with PackedString
s
hPutPS :: Handle -> PackedString -> IO ()Source
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 PackedStringSource
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
The nilPS
value is the empty string.
consPS :: Char -> PackedString -> PackedStringSource
The consPS
function prepends the given character to the
given string.
headPS :: PackedString -> CharSource
The headPS
function returns the first element of a PackedString
or throws an
error if the string is empty.
tailPS :: PackedString -> PackedStringSource
The tailPS
function returns the tail of a PackedString
or throws an error
if the string is empty.
nullPS :: PackedString -> BoolSource
The nullPS
function returns True iff the argument is null.
appendPS :: PackedString -> PackedString -> PackedStringSource
The appendPS
function appends the second string onto the first.
lengthPS :: PackedString -> IntSource
indexPS :: PackedString -> Int -> CharSource
The indexPS
function returns the character in the string at the given position.
mapPS :: (Char -> Char) -> PackedString -> PackedStringSource
The mapPS
function applies a function to each character in the string.
filterPS :: (Char -> Bool) -> PackedString -> PackedStringSource
The filterPS
function filters out the appropriate substring.
reversePS :: PackedString -> PackedStringSource
The reversePS
function reverses the string.
concatPS :: [PackedString] -> PackedStringSource
The concatPS
function concatenates a list of PackedString
s.
elemPS :: Char -> PackedString -> BoolSource
The elemPS
function returns True iff the given element is in the string.
substrPS :: PackedString -> Int -> Int -> PackedStringSource
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 -> PackedStringSource
The takePS
function takes the first n
characters of a PackedString
.
dropPS :: Int -> PackedString -> PackedStringSource
The dropPS
function drops the first n
characters of a PackedString
.
splitAtPS :: Int -> PackedString -> (PackedString, PackedString)Source
The splitWithPS
function splits a PackedString
at a given index.
foldlPS :: (a -> Char -> a) -> a -> PackedString -> aSource
The foldlPS
function behaves like foldl
on PackedString
s.
foldrPS :: (Char -> a -> a) -> a -> PackedString -> aSource
The foldrPS
function behaves like foldr
on PackedString
s.
takeWhilePS :: (Char -> Bool) -> PackedString -> PackedStringSource
The takeWhilePS
function is analogous to the takeWhile
function.
dropWhilePS :: (Char -> Bool) -> PackedString -> PackedStringSource
The dropWhilePS
function is analogous to the dropWhile
function.
spanPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)Source
The spanPS
function returns a pair containing the result of
running both takeWhilePS
and dropWhilePS
.
breakPS :: (Char -> Bool) -> PackedString -> (PackedString, PackedString)Source
The breakPS
function breaks a string at the first position which
satisfies the predicate.
linesPS :: PackedString -> [PackedString]Source
The linesPS
function splits the input on line-breaks.
unlinesPS :: [PackedString] -> PackedStringSource
The unlinesPS
function concatenates the input list after
interspersing newlines.
wordsPS :: PackedString -> [PackedString]Source
unwordsPS :: [PackedString] -> PackedStringSource
splitPS :: Char -> PackedString -> [PackedString]Source
splitWithPS :: (Char -> Bool) -> PackedString -> [PackedString]Source
The splitWithPS
function takes a character predicate and splits the input string
at each character which satisfies the predicate.
joinPS :: PackedString -> [PackedString] -> PackedStringSource
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.