Übung: mergesort

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]



Johannes Waldmann 2004-11-30