functional-programming - 列表 l 中的 mappedList 和 x 是什么?
问题描述
如果您将列表 l 作为输入,那么 mappedList 和 x 是什么?
let mapFold (f: 'a -> 'b) (l : List<'a>) : List<'b> =
l |> List.fold (fun mappedList x -> f x :: mappedList) [] |> List.rev
解决方案
lambda 表达式(由fun
关键字表示)定义了文件夹函数,它的类型'State -> 'T -> 'State
有时也称为累加器,缩写为acc
. 并且'T
是列表元素的类型l
。
一个简单的例子:(0, [1..10]) ||> List.fold (fun acc x -> acc + x)
其中 0 是状态(或 acc)的初始值,x
是 list 的一个元素[1..10]
。
因此,要回答您的问题,mappedList
是状态或累加器,它具有初始值[]
or List.empty
,并且x
是 list 的一个元素l
。fold 函数将从头到尾依次将文件夹函数应用于列表的每个元素“x”,每次调用都会更新并返回状态值,最后返回状态的最终值。
推荐阅读
- android - 上一个片段edittext焦点问题
- javascript - 如果没有 PCI DSS 1 级合规性,我可以通过 GooglePay 使用 PayPal
- javascript - 如何创建 Dynamic React 响应式轮播
- javascript - react 应用程序中带有参数的 URL 在新的浏览器窗口或选项卡中不起作用
- c# - httpget 控制器和本地化
- python - 比较重复的行
- python - 重命名 pandas 列在索引错误中找不到
- ios - iOS 自动更新订阅的动态标题/描述
- jmeter - 在分发模式下持续时间结束后 JMeter 测试未停止
- python - 查找并向新列 python 添加值