このような fmap の結果を出力したい
putStrLn <- fmap (replicate 3) [1,2,3,4]
しかし、putStrLn 解析エラーが発生しました。助けてください。
ありがとうございました。
このような fmap の結果を出力したい
putStrLn <- fmap (replicate 3) [1,2,3,4]
しかし、putStrLn 解析エラーが発生しました。助けてください。
ありがとうございました。
ここでの正しい構文は次のとおりです。
putStrLn $ show $ fmap (replicate 3) [1,2,3,4]
または、さらに短く:
print $ fmap (replicate 3) [1,2,3,4]
質問者が探している答えとはまったく異なりますが、ユーモラスなことに、彼の構文の誤解は依然として有効な Haskell コードです。
do putStrLn <- fmap (replicate 3) [1,2,3,4]
return putStrLn
上記は list モナドを使用しており、値putStrLn
は単なる変数です (期待される IO アクションではありません)。リストモナドを使用する代わりにリスト内包表記として表現すると、人々にとってより意味のあるものになるかもしれません:
> [ putStrLn | putStrLn <- map (replicate 3) [1,2,3,4]]
[[1,1,1],[2,2,2],[3,3,3],[4,4,4]]