【发布时间】:2013-02-14 16:46:32
【问题描述】:
在我要调试的 Haskell 项目中,代码中有一些实例,其中 map 仅使用一个参数 - 一个列表 - 被传递。
例如
printReports :: [Report] -> IO ()
printReports = putStrLn . unlines . map show
和
printRuns' :: [Run] -> IO ()
printRuns' = putStrLn . unlines . map showRecipes'
map 在这种情况下是什么意思/做什么?
【问题讨论】:
-
另外,应用的参数是一个函数,而不是一个列表。
map是(a -> b) -> [a] -> [b]与(a -> b) -> ([a] -> [b])相同。 -
您可以将
f . g . h读作“管道”,它获取数据并通过h,然后是g,然后是f。map show是管道中的函数之一(它接受一个列表并将列表中的每个元素转换为流)
标签: haskell map parameters pointfree partial-application