-- |Miscellaneous functions for manipulating string. module StringUtils where import Test.HUnit -- |Takes a list of strings, call them string1, string2, etc. and -- numbers them like a list. So, -- 1. string1 -- 2. string2 -- 3. etc. listify :: [String] -> [String] listify items = zipWith (++) list_numbers items where list_numbers = map show_with_dot [1::Integer ..] show_with_dot x = (show x) ++ ". " string_utils_tests :: [Test] string_utils_tests = [ test_listify ] test_listify :: Test test_listify = TestCase $ assertEqual "All items are numbered correctly." expected_items actual_items where actual_items = listify [ "item1", "item2" ] expected_items = ["1. item1", "2. item2" ]