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]