| ||||||||
| ||||||||
| ||||||||
| Description | ||||||||
| An efficient implementation of strings. | ||||||||
| Synopsis | ||||||||
| The PackedString type | ||||||||
| data 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 |