文字列のリストがあり、これを試しました:
ls = [ "banana", "mango", "orange" ]
main = do
map PutStrLn list_of_strings
それはうまくいきませんでした、そして私は理由を理解できません。
ghc print-list.hs
print-list.hs:3:0:
Couldn't match expected type `IO t' against inferred type `[IO ()]'
In the expression: main
When checking the type of the function `main'
ヒントはありますか?マップが値ではなくリストを返すことに関係していると思いますが、これを修正する簡単な方法は見つかりませんでした。
現在、文字列のリストを印刷する唯一の方法は、リストを反復処理して各要素を印刷する関数を作成することです(リストが[a]の場合は印刷しますが、(a:b)の場合は印刷して繰り返します)。しかし、マップを使用する方がはるかに簡単です...
ありがとう!