msort :: [ Int ] -> [ Int ]
msort [ ] = ???
msort [x] = ???
msort xs =
let ( here, there ) = split xs
in merge ??? ???
Unter Benutzung von
split :: [ a ] -> ([a], [a]) -- split "foobar" = ( "foa", "abr" ) merge :: [ Int ] -> [ Int ] -> [ Int ] -- merge [1,3,4,8] [2,5,6] -- = [1,2,3,4,5,6,8]