バックストーリー:私は先週、Learn You A Haskellを読んで先週、この問題に苦労していましたが、私はそれを理解できません。ハスケルでリストに文字列を分割する
私はリストの理解と再帰を理解することで多くの進歩を遂げましたが、この1つの問題はまだ私の方法で立っている一つの問題です。
質問:私はString(または私がStringと考えるもの)を分割リストに変換しようとしています。ここに私がこれまで持っていたコードがあります。 .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関数を作ってみました:それは作品
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 }
あなたが遭遇したエラー/問題は何ですか? –
私はちょうど私のエラーを投稿に追加しました。 –
あなたは 'convert''を呼び出した後に何が起こると思いますか?結果を投げ捨てようとしているように見えます。あなたはそれを印刷しようとしません。 – dave4420