Back Story : я боролся с этой проблемой уже на прошлой неделе, читая Learn You A Haskell и учебные пособия онлайн, но я не могу понять этоout.
Я достиг большого прогресса в понимании понимания и рекурсии списков, но эта проблема - единственная вещь, которая все еще стоит у меня на пути.
Вопрос Я пытаюсь преобразовать строку (или, как мне кажется, строку) в разделенный список.Вот код, который у меня есть (спасибо еще раз Ян за помощь).Он импортирует содержимое файла .txt.
import System.Environment
main :: IO ()
main = do
args <- getArgs
if null args
then putStrLn "usage: ./pattern dataset.txt"
else do contents <- readFile $ head args
putStrLn $ "Filer1: " ++ filterLower(contents)
convert' contents
filterLower :: String -> String
filterLower st = [ c | c <- st, c `elem` ['A'..'Z']]
Я попытался создать собственную функцию преобразования:
convert' :: String -> [String]
convert' x = (x:[])
Это работает, но не работает для этой проблемы.
Буду признателен за любую помощь.
Ошибка : это ошибка, которую я регулярно получаю.
Couldn't match expected type `IO ()' with actual type `[String]'
In the return type of a call of `convert''
In the expression: convert' contents
In the expression:
do { contents <- readFile $ head args;
putStrLn $ "-: " ++ filterLower contents;
convert' contents }