lambdabot-core- Lambdabot core functionality

Safe HaskellNone



String and other utilities



strip :: (a -> Bool) -> [a] -> [a] Source #

strip takes as input a predicate and a list and strips elements matching the predicate from the prefix as well as the suffix of the list. Example:

strip isSpace "   abc  " ===> "abc"

dropFromEnd :: (a -> Bool) -> [a] -> [a] Source #

Drop elements matching a predicate from the end of a list

splitFirstWord Source #


:: String

String to be broken

-> (String, String) 

Break a String into it's first word, and the rest of the string. Example:

split_first_word "A fine day" ===> ("A", "fine day)

limitStr :: Int -> String -> String Source #

Truncate a string to the specified length, putting ellipses at the end if necessary.

listToStr :: String -> [String] -> String Source #

Form a list of terms using a single conjunction. Example:

listToStr "and" ["a", "b", "c"] ===> "a, b and c"

showClean :: Show a => [a] -> String Source #

show a list without heavyweight formatting NB: assumes show instance outputs a quoted String. under that assumption, strips the outer quotes.

expandTab :: Int -> String -> String Source #

untab an string

io :: MonadIO m => IO a -> m a Source #

random :: MonadIO m => [a] -> m a Source #

Pick a random element of the list.