[Haskell-cafe] Using ShowS or Difference Lists

Mark Spezzano mark.spezzano at chariot.net.au
Sat Feb 6 07:42:40 EST 2010


Just wondering whether I can use ShowS or tupling or Difference Lists to speed up the following code?

It's basic text processing. It takes in a list of Lines where each Line is a list of Words and intersperses " " between them then concatenates them into a longer String. Note that there is a recursive call and the ++ operator.



-- Function: joinLines
-- Joins the Words within Lines together with whitespace and newline characters
-- Argument: Lines to pad with whitespace and newlines
-- Evaluate: The processed and concatenated String   
joinLines :: [Line] -> String 
joinLines (l:[]) = concat (intersperse " " l) 
joinLines (l:ls) = (concat (intersperse " " l)) ++ ('\n':joinLines ls)

More information about the Haskell-Cafe mailing list