suchbaum (x : xs) =
let ( low, high ) = partition ( < x ) xs
in Node { key = x
, left = suchbaum low
, right = suchbaum high
}
inorder ( Node { } ) =
inorder (left t) ++ [ key t ] ++ inorder (right t)
sort (x : xs) = inorder (suchbaum (x : xs)) =
let ( low, high ) = partition ( < x ) xs
in inorder (suchbaum low)
++ [ x ] ++ inorder (suchbaum high)
sort (x : xs) =
let ( low, high ) = partition ( < x ) xs
in sort low ++ [ x ] ++ sort high