map 和 collect 和有什么不一样?下面的文档-我说不出区别..
List.map<'T,'U> 函数
创建一个新集合,其元素是将给定函数应用于集合的每个元素的结果。
//签名:
List.map : ('T -> 'U) -> 'T 列表 -> 'U 列表
List.collect<'T,'U> 函数
对于列表的每个元素,应用给定的函数。连接所有结果并返回组合列表。
最佳答案
不同之处在于 map
的输出列表与输入列表的长度相同。对于 collect
,输出列表可能比输入更长或更短,因为您传递的函数返回一个列表而不是单个元素。
有关更多详细信息 - 比较签名。对于 map
List.map : ('T -> 'U) -> 'T list -> 'U list
并收集
List.collect : ('T -> 'U list) -> 'T list -> 'U list
你可以在这里看到函数参数的返回类型是不同的。
关于collections - list.map 和 list.collect 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18801054/