2013-10-25 65 views
1

我想打印FMAP的結果是這樣哈斯克爾,打印出結果FMAP

putStrLn <- fmap (replicate 3) [1,2,3,4] 

但我得到putStrLn解析錯誤。 請幫忙。

謝謝。這裏

+0

請注意,您可以用'map'與列表:)(但'fmap'也是正確的) –

回答

5

正確的語法是:

putStrLn $ show $ fmap (replicate 3) [1,2,3,4] 

,或者更短:

提問者正在尋找
print $ fmap (replicate 3) [1,2,3,4] 
+0

謝謝! !,,,,,,,,,,,,,,,,,,, – BufBills

5

完全沒有答案,但幽默他的語法誤解仍然是有效的Haskell代碼:

以上使用的是list monad,其值爲putStrLn只是一個變量(不是人們可能期望的IO動作)。如果表達爲一個列表的理解,而不是使用列表單子也許更有意義的人:

> [ putStrLn | putStrLn <- map (replicate 3) [1,2,3,4]] 
[[1,1,1],[2,2,2],[3,3,3],[4,4,4]]