@@ -70,3 +70,20 @@ words' s = case dropWhile isSpace s of
7070
7171words : String -> List String
7272words s = map pack $ words' $ unpack s
73+
74+foldr1 : (a -> a -> a) -> List a -> a
75+foldr1 f [x] = x
76+foldr1 f (x::xs) = f x (foldr1 f xs)
77+
78+
79+unwords' : List (List Char) -> List Char
80+unwords' [] = []
81+unwords' ws = (foldr1 addSpace ws)
82+ where
83+ addSpace : List Char -> List Char -> List Char
84+ addSpace w s = w ++ (' ' :: s)
85+
86+
87+unwords : List String -> String
88+unwords = pack . unwords' . map unpack
89+