mein Ziel ist es, Haskell-Funktion zu schreiben, die liest N Zeilen aus der Eingabe und verbindet sie in einer Zeichenfolge. Im Folgenden ist der erste Versuch:Haskell Weg zu [IO String] in IO String
readNLines :: Int -> IO String
readNLines n = do
let rows = replicate n getLine
let rowsAsString = foldl ++ [] rows
return rowsAsString
Hier Haskell Beschwerden über foldl
:
nicht Art erwartet konnte übereinstimmen
[a]' against inferred type
(a1 -> b -> a1) -> a1 -> [b] -> a1'
wie ich Art von Zeilen verstehen ist [IO String]
, ist es möglich, einige, wie kommen solche Liste in einem einzigen IO String
?
Ah ja, das ist die unmittelbare Ursache für den Tycheck-Fehler ... den ich ignoriert habe, denn selbst nach OP-Korrekturen haben sie noch ein anderes Problem. – ephemient
Sollte auch beachten, dass 'foldl (++) []' ist das gleiche wie 'concat'. – HaskellElephant