I’ll introduce to you, how to split string into list by comma, make "a,b,c" to ["a", "b", "c"].
Background
You know that there are some function like splitOn in Data.List.Split module, but import Data.List.Split didn’t work on Ideone. So, I, a haskell beginner, thought how to do it without other modules.
Split by comma
The following code do it. It split string, [Char] only by comma.
|
1 2 3 4 5 6 7 8 9 10 |
split = _split [] _split ts "" = ts _split ts s = _split (ts ++ [(token s)]) (drop (length(token s) + 1) s) token = _token "" _token ys "" = ys _token ys (x:xs) = do if x == ',' then ys else _token (ys ++ [x]) xs |
split "a,b,c" outputs ["a", "b", "c"].
Split by any delimiter
You can specify any delimiter with the following. The delimiter should be a Char.
|
1 2 3 4 5 6 7 |
split d = _split d [] _split d cs "" = cs _split d cs s = _split d (cs ++ [token d s]) (drop (length(token d s) + 1) s) token d = _token d "" _token d t "" = t _token d t (x:xs) = if (x == d) then t else _token d (t ++ [x]) xs |
split ' ' "a b c" outputs ["a", "b", "c"].

