Learn You a Haskell shows the words function.words and unwords are for splitting a line of text into words or  joining a list of words into a textExample:ghci> words hey these are the words in this sentence[hey,these,are,the,words,in,this,sentence]ghci> words hey these           are    the words in this\nsentence[hey,these,are,the,words,in,this,sentence]Please critique my implementation.words' :: String -> [String]words' []  = []words' xxs@(x:xs)   | x == ' '  = words' xs  | otherwise = ys : words' rest                  where (ys, rest) = break (== ' ') xxs
Implementing Haskell#words
haskell;reinventing the wheel
words treats any whitespace as a separator, not just spaces. Use Data.Char.isSpace.It's fine otherwise.When reimplementing the standard library, you can exploit the standard version as a reference implementation to compare your version to:map (\x -> words x == words' x) [,   , a, a ,  a, a  b, aa bb, aa\nbb, a b\nc\td]