neu zu Haskell und funktionale Programmierung ... im Lernprozess. Was ist mit diesem Code falsch ist:Haskell erwartet Typ Problem
import System.IO
import Data.Char
import System.Environment
main = do
args <- getArgs
progName <- getProgName
content <- readFile $ head args
putStrLn $ show $ getWordsInfo content
getWordsInfo = let
wordList = filter (\x -> length x > 2 && all isAlpha x) . words
in foldl foldingFunction 0 wordList
where foldingFunction acc tWord = acc + length tWord
Wenn ich es zu kompilieren versuchen, bekomme ich falsch den folgenden
Couldn't match expected type `[[a0]]'
with actual type `String -> [[Char]]'
In the third argument of `foldl', namely `wordList'
In the expression: foldl foldingFunction 0 wordList
In the expression:
let
wordList = filter (\ x -> length x > 2 && all isAlpha x) . words
in foldl foldingFunction 0 wordList
Was sind Sie versuchen, mit der Funktion getWordsInfo zu erreichen? Die Anzahl der Zeichen in Wörtern mit einer Länge größer als 2 erhalten, die alle alphanumerisch sind? Wenn ja, dann brauchen Sie nicht wirklich ein Faltblatt zu verwenden, Sie können einfach sum verwenden. – Zpalmtree
Nevermind, in der Klappfunktion könnte ich andere Sachen machen, die Int zurückgeben, ich frage mich nur, warum das nicht kompiliert .... – momi