übereinstimmen Ich versuche also, eine Hilfsfunktion zu erstellen, die etwas anderes tut, aber ich kann nicht einmal bekommen hinter der Helferfunktion, weil ich diesen Fehler immer wieder bekomme:Der erwartete Typ '[Char]' konnte nicht mit dem tatsächlichen Typ 'Int -> [t -> t1]'
Das senkt (x) verursacht das Problem. Hier ist mein Code:
lowers [] = 0
lowers (x:xs)
| isLower x == True = 1 + lowers xs
| otherwise = lowers xs
count _ [] = 0
count x (y:ys)
| x == y = 1 + count x ys
| otherwise = count x ys
percent x y = x/y*100
freqsHelper x = freqs (x (lowers x))
freqs (x:xs) y = percent ((count (x (x:xs))) y) : freqs xs y
Was sollen Freqs tun? – Carbon
Wie Davislor und MathematicalOrchid empfehle ich Ihnen, die Typdeklarationen für jede Funktion zu schreiben, die Sie in der Zukunft schreiben. Am Ende sparen Sie viel Zeit, denn der Compiler kann schon früh erkennen, wo Sie schief gegangen sind. Das Typensystem ist eines der nettesten Dinge in Haskell, also sollten Sie es zu Ihrem Vorteil nutzen. Das Schreiben der Typdeklarationen hilft Ihnen auch, wenn Sie eine typisierte Programmierung durchführen müssen. Mit der Erweiterung 'InstanceSigs' können Sie auch eine Typdeklaration für Ihre Funktionen in jeder Instanz der Typklasse schreiben. –