I'm not sure I follow you. Is the pattern-matching in Haskell somehow not 'core' enough? Both qsort examples linked in this thread use pattern matching.
I honestly can't see why should I use Haskell (except for being so clever) when I have Erlang, or at least one real advantage.
map f (h:t) = f h:map f t
map f [] = []
member x (h:t) = x == h || member x t
member _ [] = False
I think the only difference is that you can't match for equality directly in the pattern.