在我要调试的 Haskell 项目中,代码中有一些实例,其中 map
仅与一个参数一起使用 - 一个列表 - 被传递。
例如
printReports :: [Report] -> IO ()
printReports = putStrLn . unlines . map show
和
printRuns' :: [Run] -> IO ()
printRuns' = putStrLn . unlines . map showRecipes'
什么
map
在这种情况下是什么意思/做什么?
最佳答案
map 类型:
map :: (a -> b) -> [a] -> [b]
所以你必须提供一个来自
a
的函数至 b
和类型列表 a
.在您的示例中,该函数已经给出(
show
和 showRecipes'
),因此,您只需提供 printReports
和 printRuns'
一个列表。那里发生的事情叫做部分应用函数 , 看这里
http://www.haskell.org/haskellwiki/Partial_application
关于haskell - 在 Haskell 中,当你只传递一个列表时,map 函数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14879836/