packedstring- (Deprecated) Packed Strings.





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.


The PackedString type

data PackedString Source

A space-efficient representation of a String, which supports various efficient operations. A PackedString contains full Unicode Chars.

Converting to and from PackedStrings

I/O with PackedStrings

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

nilPS :: PackedStringSource

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

The lengthPS function returns the length of the input list. Analogous to length.

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 PackedStrings.

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 PackedStrings.

foldrPS :: (Char -> a -> a) -> a -> PackedString -> aSource

The foldrPS function behaves like foldr on PackedStrings.

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

The wordsPS function is analogous to the words function.

unwordsPS :: [PackedString] -> PackedStringSource

The unwordsPS function is analogous to the unwords function.

splitPS :: Char -> PackedString -> [PackedString]Source

The splitPS function splits the input string on each occurrence of the given Char.

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 PackedStrings and concatenates the list after interspersing the first argument between each element of the list.