
I am relatively new to Haskell, having spent the last half a decade or so developing in Ruby. I am attempting to (for the sake of exercise) implement a split function from the ground up in Haskell, and for the life of me I can not figure out why it doesn't work. Without further ado: module MyAwesomeModule where import qualified Data.Text as T outputSplit :: String -> [String] -> IO () outputSplit s tokens = print $ splitRecursive tokens s splitRecursive :: [String] -> String -> [String] splitRecursive tokens s = splitOneOf tokens s splitOneOf :: [String] -> String -> [String] splitOneOf [] s = [] splitOneOf (t:tokens) s = map (splitOneOf tokens)(map (T.unpack) (T.splitOn (T.pack t) (T.pack s))) ++ (splitOneOf tokens s) which errors out with: Couldn't match type `[Char]' with `Char' Expected type: String -> String Actual type: String -> [String] In the return type of a call of `splitOneOf' In the first argument of `map', namely `(splitOneOf tokens)' In the first argument of `(++)', namely `map (splitOneOf tokens) (map (T.unpack) (T.splitOn (T.pack t) (T.pack s)))' Failed, modules loaded: none. If anyone has any ideas, that would be awesome! And yes, I'm aware of Data.List.Split, like I said, trying to roll my own....