Haskell - Merge-Sort, Sortieren von Wörtern und zahlen

Habe ich geschrieben, merge-sort in Haskell, es funktioniert, wenn mit zahlen, aber nicht mit Worten, und ich dachte, es würde. Ich bekomme nur "not in scope" bei der Verwendung von Worten und Buchstaben. Was mache ich falsch?

Hier ist mein code:

merge :: Ord a => [a] -> [a] -> [a]
merge [] ys = ys
merge xs [] = xs
merge (x:xs) (y:ys)
    | x <= y = x : merge xs (y:ys)
    | otherwise = y : merge (x:xs) ys

mergeSort :: Ord a => [a] -> [a]
mergeSort [] = []
mergeSort [x] = [x]
mergeSort xs
    = merge (mergeSort top) (mergeSort bottom)
    where
    (top, bottom) = splitAt (length xs `div` 2) xs
  • Dies funktioniert mit Strings, f.e. mergeSort ["banana", "candy", "apple"]
  • Dein code sieht okay aus. Es könnte hilfreich sein, um zu sehen, die genaue Eingabe und die vollständige Fehlermeldung. Ist es nicht gerade hilfreich, dass etwas ist nicht im Lieferumfang...
InformationsquelleAutor user940599 | 2011-09-26
Schreibe einen Kommentar