Jump to content

Split a character string based on change of character: Difference between revisions

→‎{{header|Haskell}}: Added a variant expressed in terms of `span`
(→‎{{header|Haskell}}: Added a foldr variant)
(→‎{{header|Haskell}}: Added a variant expressed in terms of `span`)
Line 1,245:
main =
putStrLn $ intercalate ", " $ charGroups "gHHH5YY++///\\"</lang>
<pre>g, HHH, 5, YY, ++, ///, \</pre>
 
or in terms of '''span''':
<lang haskell>import Data.List (intercalate)
 
charGroups :: String -> [String]
charGroups [] = []
charGroups (c : cs) = (c : xs) : charGroups ys
where
(xs, ys) = span (c ==) cs
 
main :: IO ()
main =
putStrLn $ intercalate ", " $ charGroups "gHHH5YY++///\\"</lang>
{{Out}}
<pre>g, HHH, 5, YY, ++, ///, \</pre>
 
9,659

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.