on master help sign in
added unwords
commit582edaa90a76e9b6a2bccd46d7744aceb3a173f9 authormelissam <mfm6@st-andrews.ac.uk> dateMon 30 Jul 2012, 10:12 (14 years ago) parent01a9216
1 file changed+17
lib/prelude/strings.idr+17
lib/prelude/strings.idr+17
@@ -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+