Ich habe sieben Bücher in sieben Wochen gelesen und arbeite mit Haskell.Haskell 'Der erwartete Typ konnte nicht mit dem tatsächlichen Typ übereinstimmen'
ich mit dem Problem bin zu kämpfen:
eine Art schreiben, die eine Liste und eine Funktion übernimmt, der seine zwei Argumente vergleicht und gibt dann eine sortierte Liste.
Ich suchte online nach Hilfe und fand eine Lösung, aber ich kann nicht einmal die Lösung wegen eines erwarteten zu tatsächlichen Typfehlers laufen lassen.
Hier ist der Code, den ich versucht habe:
module Main where
import Data.List
sortList :: (Ord a) => (a -> a -> Ordering) -> [a] -> [a]
sortList comparator list = sortBy comparator list
Hier ist der Fehler:
*Main> sortList [5,4,2,7,8,1]
<interactive>:1:10:
Couldn't match expected type `a -> a -> Ordering'
with actual type `[t]'
In the first argument of `sortList', namely `[5, 4, 2, 7, ....]'
In the expression: sortList [5, 4, 2, 7, ....]
In an equation for `it': it = sortList [5, 4, 2, ....]
Meine Gedanken und Versuche:
Vielleicht I rufe ich die Funktion falsch an? Ich bin ziemlich neu in Haskell. Ich habe versucht, viele Suchen zu machen. Alles, was ich zu dem Schluss kommen konnte, ist, dass irgendwo die Typen nicht übereinstimmen. Ich denke, eine Erklärung und Anleitung für das Skript wäre sehr hilfreich für mich.
Well deine Unterschrift dy sagt es: das Aufrufen von 'sortList' erfordert einen' comparator', den Sie nicht angegeben haben ... –