haskell - 在 Haskell 中,当你只传递一个列表时,map 函数是什么意思?

标签 haskell map parameters pointfree partial-application

在我要调试的 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 .

在您的示例中,该函数已经给出( showshowRecipes' ),因此,您只需提供 printReportsprintRuns'一个列表。

那里发生的事情叫做部分应用函数 , 看这里
http://www.haskell.org/haskellwiki/Partial_application

关于haskell - 在 Haskell 中,当你只传递一个列表时,map 函数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14879836/

相关文章:

powershell - Powershell中管道参数的默认值列表

haskell - runST 和函数组合

data-structures - 用于有效返回哈希表(映射、字典)的前 K 个条目的数据结构

map - 为什么我的unordered_map自己订购?

javascript - 获取用户自由手绘折线的坐标。 (用于 JavaScript 的 ArcGIS API)

java - 方法不能应用于给定类型

mysql - nodejs mysql查询标识符 '?'错误,但连接查询工作

Haskell:Map.empty 出现 "Qualified name in binding position"错误

haskell - 为什么 `changes` 返回 `Event t (Future a)`

在haskell中快速排序整数