1
私が読んで、ファイル名のリストにマッピングされた「readProcess」コマンドからの出力を印刷しようとしています
files <- readProcess "ls" [] []
let mdList = map (\file -> do
md <- readProcess "mdls" [file] []
return md) $ splitOn "\n" files in
map (\md -> putStrLn md) mdList
putStrLn "Complete"
私はmdListにputStrLnをマップしようとするたびに、私はこれを取得しますエラー:
Couldn't match type ‘IO String’ with ‘[Char]’
私はIOの文字列にputStrLnを使用するように見える多くのStackOverflowの回答を読みましたが、私はそうすることができません。また、私はハスケルに新しいので、他のヒントもありがとうございます。
「IO String」値は**ではなく**文字列です。あなたが料理本を食べたくないのと同じ理由で、 'IO String'を置くことは理にかなっていません。 – leftaroundabout
IO文字列が文字列ではないことを認識しています。私はIO Stringを書く方法を尋ねています。 – genghiskhan
あなたは 'forM_'を望みます。あなたはモナドを理解していないのであなたの問題が発生しました。最初にモナドが何であるかを理解しようとするのがよいでしょう。 – HuStmpHrrr