私は文字列のリストを持っていて、これを試しました:Haskell: "putStrLn map"を使うことはできませんか?
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]ならば印刷しますが、 b))。しかし、マップを使うだけではるかにになります...
ありがとう!
私がもっと早く多くのことを学びたいと思っていたことは、Data.Traversableに別のmapMが定義されていることでした。このmapMは、マップや配列などのリストに加えて、より多くのデータ構造を処理します。 –
私はいつも 'main'は' IO() '型でなければならないと考えていました。 IO t 'である。それは毎日新しい何かを学ぶ方法を示しています:-) –