I have a question on pattern matching:
Is it possible to somehow match a (string ++ [char] ++ anotherstring)?
I have tried something like:
f
No, it's not possible. Pattern matching deconstructs values according to the constructors they were built with, so you can only use constructor applications in pattern matching to describe which values match the pattern and which don't.
For something like your example, a case
works well,
f str = case break (== ';') str of
(s, _:r) -> s ++ r
_ -> error "No semicolon found"